Kazuhiko
kazuh****@fdiar*****
2009年 9月 7日 (月) 17:43:06 JST
こんにちは、かずひこです。 morit****@razil***** wrote: > "*"が付いているクエリのハンドリングに不備があるようです。 > > 直した方がいいですよねぇ・・・。 お返事ありがとうございます。 MySQLと連動してバリバリ使う、というこちらのユースケースでは、Sennaがまだ まだ現役なのです。 このバグをふんだ経緯を補足します。 他のコンディション付きで"garra"で全文検索するとヒットせず、"garrah"で全 文検索するとヒットして、何故だ?と思って調べてみると、"garra"がexactマッ チする文書があって、それが他のコンディションを満たさなかったため、「完全 一致→非わかち書き→部分一致」という切り替えが行われていませんでした。 一方、"garrah"の場合は、exactマッチする文書が無かったので、「完全一致→非 わかち書き→部分一致」という切り替えが行われて、garrahanを含む文書を見つ けてくれました。 なので、こういうケースでは"garra*"で検索すればいいのかな? と思って試し た次第です。 "*E"プラグマをいじって対応するというワークアラウンドも検討したのですが、 上記のように「Sennaの全文検索では(*Eプラグマの数値1以上の件数)exact ヒットするけれど、他のコンディションを満たさない」というケースでは、「完 全一致→非わかち書き→部分一致」と切り替えてくれないので、そうなると常に-5 とか-7とかにするしかなく、それはパフォーマンスに対する影響が大きすぎそう でちょっと躊躇します。 「完全一致→非わかち書き→部分一致」の切り替えが、全文検索の結果だけでな く、クエリ全体の結果に応じて切り替わればいいのですが、これはバグではなく て仕様、でしょうか? どうぞよろしくお願いします。 かずひこ