排除与MYSQL全文搜索无关的任何内容

时间:2013-02-11 16:51:06

标签: php mysql full-text-search

我的搜索查询如下所示:

  $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";

它工作得很好(大部分时间),但我注意到的问题是,当你搜索结果有限的话题时(比如说两个),它会先显示那两个,然后是一堆非相关的,直到极限到了。

我想知道是否有办法更改评分系统,以便确定顶部的两个是最相关的,其余的是不相关的,所以不应该显示它们。

1 个答案:

答案 0 :(得分:1)

你可以试试:

$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";