我正在尝试实现全文搜索。我正在使用 FREETEXT 并且得到了正确的结果。问题在于结果的排序。如果尝试搜索“ parking 场”,则匹配这两个词的结果应该位于开头,然后是仅匹配其中一个词的结果。我怎样才能做到这一点?
谢谢
最佳答案
使用 FREETEXTTABLE 而不是 FREETEXT。
FREETEXTTABLE 将返回包含排名信息的键表。您可以对此排名信息进行排序,以查找最接近匹配的项目。
Microsoft FREETEXTTABLE documentation
以下示例展示了其工作原理:
SELECT
t.TableID
, t.TextData
, ft.Rank
FROM
Table t
INNER JOIN FREETEXTTABLE ( Table , * , 'car park' ) ft ON ( t.TableID = ft.[Key] )
ORDER BY
ft.Rank DESC
关于sql-server - FREETEXT 搜索 - 根据匹配程度对结果进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6686171/