常用词未出现在全文搜索结果中

Common words not showing up in FULLTEXT search results

我正在使用全文搜索我正在制作的网站,以便按相关性对用户搜索查询进行排序。这在解决一个问题方面效果很好。当超过 50% 的时间在我的 table 中填充搜索词时,该查询将被忽略。我正在寻找一种解决方案,以不忽略 table.

行中超过 50% 的单词

例如,在我的 "items" table 中,它可能看起来像这样:

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

如果用户搜索 "poster",查询结果为 returns 0,因为它在 table 中出现的次数太多。我怎样才能阻止这种情况发生?

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

这是我的例子 SQL:

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

您必须重新编译 MySQL 才能更改此设置。来自 Fine-Tuning MySQL Full-Text Search

上的文档

The 50% threshold for natural language searches is determined by the particular weighting scheme chosen. To disable it, look for the following line in storage/myisam/ftdefs.h:

   #define GWS_IN_USE GWS_PROB

Change that line to this:

   #define GWS_IN_USE GWS_FREQ

Then recompile MySQL. There is no need to rebuild the indexes in this case.