0

我有全文搜索的问题。我有两张桌子:

歌曲

+------------+-----------------------+------------+-----------+
| 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 参数,尝试重建索引。没变化。

4

1 回答 1

1

检查Mysql 停用词列表

“Can”和“Believe”都是停用词,而“U”太短,所以你的匹配将返回 0。

如果您想使用全文搜索音乐标题,您必须修改您的停用词列表或完全禁用它。

有关如何做到这一点,请参阅全文微调。

测试全文时,请确保表中有足够的行。尽管您有停用词自定义设置,但出现在超过 50% 行中的单词会被视为停用词。

于 2013-08-19T06:47:11.883 回答