我们在法语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/

10-11 15:56