我的搜索相关性存在问题,并使用全文(匹配)进行过滤,我将在下面说明。
我有一个名为Songs的表,其中包含超过1.5M的记录,此表包含许多列,其中2列是名称和艺术家,这2列是全文索引的。
当我搜索一个标题和歌曲时,它的值完全匹配,它显示的是低分,而对我来说,它没有任何意义。例如。
DATA:
name | artist
------------- | ------------
Glad You Came | Boyce Avenue
当我执行下面的查询时,它会带来:
SELECT name, artist,
MATCH(name, artist) AGAINST('+glad +you +came +Boyce +Avenue' IN BOOLEAN MODE) AS score
FROM live_lyric.songs
WHERE MATCH(name, artist) AGAINST('+glad +you +came +Boyce +Avenue' IN BOOLEAN MODE)
name | artist | score
------------- | ------------ | ------------------
Glad You Came | Boyce Avenue | 54.727073669433594
我正在寻找完全匹配,怎么可能是54.7 ??
如果我删除+符号
SELECT name, artist,
MATCH(name, artist) AGAINST('glad you came Boyce Avenue' IN BOOLEAN MODE) AS score
FROM live_lyric.songs
WHERE MATCH(name, artist) AGAINST('glad you came Boyce Avenue' IN BOOLEAN MODE)
我会得到类似的回复,其中很多其他记录根本不相关。
对我来说,搜索' +'标志应该接近100,为什么不是,我该如何改进呢?