高見 直輝
takam****@orega*****
2016年 1月 18日 (月) 15:36:28 JST
高見です。 > > select lower(pathcombine(rootdir::text, path)) as tmp from TEST_TABLE > > where > > lower(pathcombine(rootdir,path)) LIKE lower('\st\新しいフォルダー\フォルダ%') AND > > lower(pathcombine(rootdir,path)) @@ lower('"30"'); > > > > で同じ挙動になるんじゃないかと思います。 > > 残念ながら、改善しませんでした。 > どうも、LIKE指定が在ると無条件で結果が0件になって居るような感じです。 自己レスになりますが、LIKEを使ったときと%%を使ったときのPGROONGAの DEBUGログを取得しましたので報告します。 まず、LIKEの前方一致ではなく、部分一致で検索したとき。(結果:0件) 【SQL】 select lower(pathcombine(rootdir::text, path)) as tmp from TEST_TABLE where lower(pathcombine(rootdir,path)) LIKE lower('%\st\新しいフォルダー\フォルダ%') AND lower(pathcombine(rootdir,path)) @@ lower('"30"'); 2016-01-18 15:00:24.531000|i| [object][search][index][key][exact] <Lexicon16728_0.index> 2016-01-18 15:00:24.531000|i| grn_ii_sel > (st新しいフォルダーフォルダ) 2016-01-18 15:00:24.531000|i| exact: 0 2016-01-18 15:00:24.531000|i| unsplit: 0 2016-01-18 15:00:24.531000|i| partial: 0 2016-01-18 15:00:24.531000|i| hits=0 2016-01-18 15:00:24.531000|i| [object][search][index][key][exact] <Lexicon16728_0.index> 2016-01-18 15:00:24.531000|i| grn_ii_sel > (30) 2016-01-18 15:00:24.531000|i| n=1 (30) 2016-01-18 15:00:24.531000|i| exact: 0 2016-01-18 15:00:24.531000|i| hits=0 次に、%%で検索したとき。(結果:4712件) select lower(pathcombine(rootdir::text, path)) as tmp from TEST_TABLE where lower(pathcombine(rootdir,path)) %% lower('\st\新しいフォルダー\フォルダ') AND lower(pathcombine(rootdir,path)) @@ lower('"30"'); 2016-01-18 15:03:23.468000|i| [object][search][index][key][exact] <Lexicon16728_0.index> 2016-01-18 15:03:23.468000|i| grn_ii_sel > (\st\新しいフォルダー\フォルダ) 2016-01-18 15:03:23.468000|i| n=16 (\st\新しいフォルダー\フォルダ) 2016-01-18 15:03:23.500000|i| exact: 20342 2016-01-18 15:03:23.500000|i| hits=20342 2016-01-18 15:03:23.500000|i| [object][search][index][key][exact] <Lexicon16728_0.index> 2016-01-18 15:03:23.500000|i| grn_ii_sel > (30) 2016-01-18 15:03:23.500000|i| n=1 (30) 2016-01-18 15:03:23.500000|i| exact: 4712 2016-01-18 15:03:23.500000|i| hits=4712 最後に、LIKE検索で\をエスケープした結果です。(結果:0件) select lower(pathcombine(rootdir::text, path)) as tmp from TEST_TABLE where lower(pathcombine(rootdir,path)) LIKE lower('%\\st\\新しいフォルダー\\フォルダ%') AND lower(pathcombine(rootdir,path)) @@ lower('"30"'); 2016-01-18 15:04:25.734000|i| [object][search][index][key][exact] <Lexicon16728_0.index> 2016-01-18 15:04:25.734000|i| grn_ii_sel > (\st\新しいフォルダー\フォルダ) 2016-01-18 15:04:25.750000|i| n=16 (\st\新しいフォルダー\フォルダ) 2016-01-18 15:04:25.781000|i| exact: 20342 2016-01-18 15:04:25.781000|i| hits=20342 2016-01-18 15:04:25.781000|i| [object][search][index][key][exact] <Lexicon16728_0.index> 2016-01-18 15:04:25.781000|i| grn_ii_sel > (30) 2016-01-18 15:04:25.781000|i| n=1 (30) 2016-01-18 15:04:25.781000|i| exact: 4712 2016-01-18 15:04:25.781000|i| hits=4712 2つ目と3つ目のログが同じに見えるのに、何故結果が異なるのかは不明です。 > 一つ確認なのですが、1.0.1を適用することで状況が改善する可能性はあります > でしょうか? > 現在1.0.0で動かしています。 ----------------------------- 高見 直輝 <takam****@orega*****> 株式会社オレガ TEL:03-3267-0150 FAX:03-3267-0180