1

我正在为网站编写搜索功能。我必须用我的查询搜索多个表,每个表都有不同的重要性级别。

这是我目前对查询的想法

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),但是还有其他方法吗?

4

1 回答 1

0

这个页面有一些关于对自然语言搜索结果进行评分的重要信息。

http://dev.mysql.com/doc/refman/5.0/en/fulltext-natural-language.html

于 2013-08-15T19:10:57.760 回答