我们在法语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。
有什么建议吗?
谢谢。
答案 0 :(得分:0)
问题出在OR
内的where
子句中。您应该将OR
内的WHERE
替换为AND
。