FREETEXT搜索 - 根据匹配的结果排序结果

时间:2011-07-13 21:54:22

标签: sql-server sql-server-2008 full-text-search

我正在尝试实施全文搜索。我正在使用FREETEXT,我得到了正确的结果。问题是结果的排序。如果尝试搜索“停车场”,那么与这两个词匹配的结果应该在开头,然后只匹配其中一个。我怎么能做到这一点?

感谢

1 个答案:

答案 0 :(得分:9)

使用FREETEXTTABLE而不是FREETEXT。

FREETEXTTABLE将返回一个包含Rank信息的密钥表。您可以对此排名信息进行排序,以找到最匹配的项目。

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