常用词未出现在全文搜索结果中
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.
我正在使用全文搜索我正在制作的网站,以便按相关性对用户搜索查询进行排序。这在解决一个问题方面效果很好。当超过 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.