【发布时间】:2014-09-03 17:38:30
【问题描述】:
所以让我描述一下我的问题。我正在尝试在多个列上实现全文搜索。我有一个带有 cd 记录的数据表。它包含关于艺术家的列和关于记录名称的列。所以我正在寻找他们两个。问题是,当我使用查询“queen”进行搜索时,艺术家“queen jane”的得分比艺术家“queen”的得分高。 这是我的搜索逻辑:
SELECT * ,
MATCH(artist) AGAINST ('queen') as score_artist,
MATCH(cd) AGAINST ('queen') as score_title
FROM records
WHERE MATCH(artist, cd) AGAINST ('queen')
order by score_artist+score_title DESC, artist asc, cd asc;
例如,“queen”和“queen jane”的得分是:
band score_artist score_title
queen jane 4.803966045379639 4.078868865966797
queen 4.803966045379639 4.0335259437561035
同样,有没有其他方法可以指定完全匹配的匹配比仅部分匹配的匹配更重要。
谢谢
【问题讨论】:
标签: mysql sql full-text-search