我们在法语CMS(SPIP)上使用全文搜索。带有减号的搜索结果似乎不正确。我们尝试了phpMyAdmin中CMS生成的sql请求:
SELECT t.id_zotspip, t.titre, t.resume,
MATCH(t.`titre`) AGAINST ('+corrosion -bacteria' IN BOOLEAN MODE) * 10
+ MATCH(t.`titre`,t.`resume`) AGAINST ('+corrosion -bacteria' IN BOOLEAN MODE) * 2.2 AS score
FROM `spip_zotero311`.spip_zitems AS t
WHERE ((MATCH(t.`titre`) AGAINST ('+corrosion -bacteria' IN BOOLEAN MODE))
OR (MATCH(t.`titre`,t.`resume`) AGAINST ('+corrosion -bacteria' IN BOOLEAN MODE)))
GROUP BY t.id_zotspip ORDER BY score DESC LIMIT 0,500
我们在简历中得到细菌的结果...
表的类型是MyISAM,但是基础的类型是InnoDB。
有什么建议么 ?
谢谢。
最佳答案
问题出在OR
中的where
子句中。您应将OR
子句中的WHERE
替换为AND
。
关于mysql - 全文搜索不排除-xxxword,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39891261/