[Senna-dev 753] NOT検索のみを行うとAND検索になってしまう件について

アーカイブの一覧に戻る

Ikumi Ishikawa notte****@gmail*****
2008年 1月 29日 (火) 18:20:53 JST


はじめまして。石川と申します。

過去ログをいろいろと拝見させていただいたのですが、該当のものがなかったため、
質問させていただきます。

[環境1]
MySQL-5.0.41
tritonn-1.0.3
senna-1.0.7
[環境2]
MySQL-5.0.51
tritonn-1.0.8
senna-1.0.9
環境1,2ともに現象が発生します

[現象]
SELECT COUNT(foo) FROM bar WHERE MATCH(○○○) AGAINST('*D+ -×××' IN BOOLEAN MODE);

上記のようなNOT検索のみを指定したSQLを発行すると、「-」の演算子が無視されて、
(この場合だと「*D+」のプラグマがあるので、)AND検索になってしまいます。

また、('*D+ -××× -○○○' IN BOOLEAN MODE)という形でSQLを発行すると、
先頭の「-」演算子のみが無視されてしまい、×××の結果から○○○を除いた結果が検索されます。

MySQLのBOOLEAN MODEの仕様を調べたところ、
http://dev.mysql.com/doc/refman/5.0/en/fulltext-boolean.html
(-の項のNOTE:の部分です。)
なんとなく「単独で使用した場合は空の結果を返す」というようなことが書いてあるような気がします。(すいません曖昧で。。。)

現象はSennaの仕様なのでしょうか?
ご教授いただけたらと思います。

よろしくお願いいたします。




Senna-dev メーリングリストの案内
アーカイブの一覧に戻る