【发布时间】:2017-04-09 10:01:47
【问题描述】:
我的搜索相关性和使用全文过滤(匹配)有问题,我将在下面解释。
我有一个名为 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,为什么它不是,我该如何改进它?
【问题讨论】:
标签: mysql full-text-search match-against