FULLTEXT搜索结果中没有显示的常用词

时间:2015-02-03 00:38:23

标签: mysql sql full-text-search

我正在使用全文搜索我正在制作的网站,以按相关性订购用户搜索查询。这有一个问题很好。当超过50%的时间在我的表中填充搜索词时,将忽略该查询。我正在寻找一种解决方案,不要忽略超过50%的表行的单词。

例如,在我的"项目"表,它可能看起来像这样:

item_name
---------
poster 1
poster 2
poster 3
poster 4
another item

如果用户搜索" poster",则查询返回0结果,因为它在表格中显示的次数太多。我怎样才能阻止这种情况发生?

我尝试过使用IN BOOLEAN MODE,但这会占用我需要的功能(按相关性排序)。

这是我的SQL的一个例子:

SELECT item_title
FROM items
WHERE MATCH(item_title, tags, item_category) AGAINST('poster')

1 个答案:

答案 0 :(得分:2)

你必须重新编译MySQL才能改变它。来自Fine-Tuning MySQL Full-Text Search

的文档
  

自然语言搜索的50%阈值由所选的特定加权方案确定。要禁用它,请在storage / myisam / ftdefs.h中查找以下行:

   #define GWS_IN_USE GWS_PROB
     

将该行更改为:

   #define GWS_IN_USE GWS_FREQ
     

然后重新编译MySQL。在这种情况下,无需重建索引。