MySql 全文搜索对于短单词不正确

Pow*_*ist 4 mysql sql search

经过多次尝试和多次搜索后,我得到以下查询:

SELECT id,
       title,
       description,
       MATCH(title,description,tags) AGAINST ('$search' IN NATURAL LANGUAGE MODE) AS score
FROM pages
Run Code Online (Sandbox Code Playgroud)

我使用此查询在大量包含音乐课程的页面中进行搜索。效果很好。页面根据其与查询的匹配程度获得分数。

除非用户搜索“C Chord”或“Am Chord”之类的内容,否则第一部分将被忽略。如果我搜索“A 和弦”或“E 和弦”,名为“C 和弦”的页面始终位于顶部。

所以..我的问题的第一部分是:我该如何解决这个问题?

然后是第 2 部分。是否可以让“标题”列对分数的重要性高于“描述”?

Gor*_*off 5

MySQL对于全文搜索有两个重要的参数,停止词和最小词长。第一个是最小字长(记录在此处):

短于最小值的单词不会被编入索引,因此您无法搜索它们。更改参数后记得重建索引。方便的是(哈!)它们有不同的默认值。

此外,还有停用词列表来删除常见停用词。这是否是一个问题取决于您要搜索的单词。您可以自定义停用词。