我一直在玩boolean mode
MySQL 的fulltext
搜索,但我有时不理解我得到的结果。
例如,这里有一些数据行..
auction_id,'name'
100543,'2011-12 Fleer Retro patch auto'
100544,'2011-12 Fleer Retro patch auto jordan'
100545,'2011-12 Fleer Retro autograph'
100546,'2011-12 Fleer Retro autographed'
100547,'2011-12 Fleer Retro auto'
100549,'1999 jordan auto'
100550,'1999 auto jordan'
100551,'1999 autograph jordan'
100552,'1999 autographed jordan patch'
100553,'1999 jordan non auto'
现在,如果我运行查询:
SELECT auction_id,NAME,description FROM auctions WHERE MATCH(`name`) AGAINST('+jordan +auto' IN BOOLEAN MODE);
我得到了100544,100549,100550,100553
返回的行,这是正确的。但是,如果我运行此查询:
SELECT auction_id,NAME,description FROM auctions WHERE MATCH(`name`) AGAINST('+jordan +auto -non' IN BOOLEAN MODE);
我得到了相同的结果;不应该100553
消失,因为它在name
?
另外,如果我将其更改为:
SELECT auction_id,NAME,description FROM auctions WHERE MATCH(`name`) AGAINST('+jordan +auto -"non auto"' IN BOOLEAN MODE);
我没有返回任何结果;我应该得到他们所有除了100553
?