我的搜索相关性和使用全文过滤(匹配)有问题,我将在下面解释。
我有一个名为 Songs 的表,其中包含超过 150 万条记录,该表包含许多列,其中 2 列是名称和艺术家,这 2 列是全文索引。
当我搜索与值完全匹配的标题和歌曲时,它显示的分数很低,例如,对我来说这没有任何意义。
数据:
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,为什么它不是,我该如何改进它?