我正在为网站编写搜索功能。我必须使用我的查询搜索多个表,每个表都具有不同的重要性级别。
这是我目前关于查询的想法
SELECT id FROM table1
WHERE MATCH(name) AGAINST('keyword')
UNION
SELECT id FROM table2
WHERE MATCH(name) AGAINST('keyword')
...
...
我遇到的一个问题是优先考虑与关键字完全匹配的结果。例如,如果我有:
id - name
1 - Central Park
2 - Park
如果我使用关键字FULLTEXT
对其进行Park
次搜索,则会评估两者具有相同的相关性。但我总是希望2 - Park
能够在结果之上。我想我可以通过LENGTH(name),
订购来解决这个问题,但还有另一种解决方法吗?
答案 0 :(得分:0)
此页面提供了一些有关自然语言搜索结果评分的精彩信息。
http://dev.mysql.com/doc/refman/5.0/en/fulltext-natural-language.html