我的搜索查询如下所示:
$sql="SELECT *,
MATCH(item_tags, item_name, item_description) AGAINST('$serchQuery' IN BOOLEAN MODE) AS score
FROM item_list
WHERE `item_display`='1' OR `item_display`='3' AND MATCH(item_tags, item_name, item_description) AGAINST('$serchQuery' IN BOOLEAN MODE) ORDER BY score DESC LIMIT 0, 24";
它工作正常(大多数时候),但我注意到的问题是,当您搜索结果有限的主题(比方说两个)时,它会首先显示这两个结果,然后显示一堆不相关的结果,直到达到限制已达到。
我想知道是否有办法更改评分系统,以便确定顶部的两个最相关,其余的不相关,因此不应显示它们。
最佳答案
那么你可以尝试:
$sql = "SELECT *,
MATCH (item_tags, item_name, item_description) AGAINST ($serchQuery IN BOOLEAN MODE) AS score
FROM item_list
WHERE MATCH(item_tags, item_name, item_description) AGAINST('$serchQuery' IN BOOLEAN MODE)
HAVING score >= 1
ORDER BY score DESC LIMIT 0, 24";
关于php - 排除任何与 MYSQL 全文搜索无关的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14816828/