我们在法语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。
有什么建议吗?
谢谢您。
1条答案
按热度按时间snz8szmq1#
问题出在
OR
内部子句where
. 你应该替换OR
内部WHERE
带的子句AND
.