我只是在用 mysql 做一堆测试,full text boolean mode
从我的测试来看,你似乎不能在多个单词上使用减号?
例如,我有两行..
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
但是,似乎 fiddle 使用默认的停用词文件,因此用“非”词对其进行测试是行不通的。