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の仕様なのでしょうか?
ご教授いただけたらと思います。
よろしくお願いいたします。