我遇到全文搜索问题。 我有两张桌子:
歌曲
+------------+-----------------------+------------+-----------+
| id_canzone | canzone | id_artista | canzone |
+------------+-----------------------+------------+-----------+
| 107 | Can U Believe | 15 | I'm Sorry |
+------------+-----------------------+------------+-----------+
艺术家
+------------+---------+
| id_artista | artista |
+------------+---------+
| 15 | Akon |
+------------+---------+
如果我搜索艺术家的全文搜索,我没有遇到任何问题。
SELECT *,MATCH(artista) AGAINST('Akon Can U Believe.' ) FROM artists
+------------+---------+------------------------------------------------+
| id_artista | artista | MATCH(artista) AGAINST('Akon Can U Believe.' ) |
+------------+---------+------------------------------------------------+
| 15 | Akon | 1.9237866401672363 |
+------------+---------+------------------------------------------------+
但是当我尝试使用歌曲表时
SELECT id_canzone,canzone,MATCH(canzone) AGAINST('Akon Can U Believe.' ) FROM songs
+------------+---------------+------------------------------------------------+
| id_canzone | canzone | MATCH(canzone) AGAINST('Akon Can U Believe.' ) |
+------------+---------------+------------------------------------------------+
| 104 | Can U Believe | 0 |
+------------+---------------+------------------------------------------------+
我减小了ft min word len参数,尝试重建索引。什么都没有改变。
答案 0 :(得分:1)
“Can”和“Believe”都是停用词而“U”太短,所以你的比赛将返回0。
如果您想使用全文搜索音乐标题,则必须修改停用词列表或完全禁用它。
有关如何操作的信息,请参阅fulltext fine tuning。
测试全文时,请确保表中有足够的行。 尽管使用了停用词自定义设置,但超过50%行中出现的单词仍被视为停用词。