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

标签 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";

它工作正常(大多数时候),但我注意到的问题是,当您搜索结果有限的主题(比方说两个)时,它会首先显示这两个结果,然后显示一堆不相关的结果,直到达到限制已达到。

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

最佳答案

那么你可以尝试:

$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/

相关文章:

php - 循环遍历 URL 参数并添加到 mySQL

php - api cakephp 休息认证

javascript - jQuery-ajax 'on click event' 不工作

mysql - 如何在 Django Tastypie 中使用 OR

php - Phalcon,Docker MySQL 连接失败

MySQL - 通过部分单词匹配和相关性评分进行高效搜索(全文)

sql-server-2005 - SQL Server ContainsTable 未找到部分匹配项

sql-server-2008 - 结果中缺少名称中的 SQL Server 2008 FullTextSearch 单个字符

php - 如何连接已被另一个表连接的表

php - 适用于 Ubuntu 的多合一 PHP 包