私は mysql で一連のテストを行っていfull text boolean mode
ますが、私のテストから、複数の単語にマイナス記号を使用できないようです?
たとえば、2行あります..
id,name
1,2011-12 Fleer Retro auto jordan non
2,1999 jordan non auto
次のクエリを実行すると:
SELECT auction_id,`name`,description FROM auctions WHERE MATCH(`name`) AGAINST('+jordan +auto -non' IN BOOLEAN MODE);
両方の行が期待どおりに表示されません。ただし、このクエリを実行すると:
SELECT auction_id,`name`,description FROM auctions WHERE MATCH(`name`) AGAINST('+jordan +auto -"non auto"' IN BOOLEAN MODE);
両方の行が表示されません (同じ結果)。行1
が戻ってくるべきではありませんか?
編集:私ft_min_word_len
はに設定されて2
おり、ストップワードファイルを無効にしているため、それとは関係ありません。
フィドル: http://sqlfiddle.com/#!2/d1987/4
ただし、フィドルはデフォルトのストップワードファイルを使用しているため、「非」ワードでテストしても機能しないようです。