使用FREETEXTTABLE为列赋予优先级/权重

时间:2009-11-10 19:25:38

标签: sql-server full-text-search

我正在使用SQL Server全文搜索,使用关键字FREETEXTTABLE返回基于几列的结果表,搜索关键字。

现在我有两个我正在搜索的主要列,标题和描述,我想优先选择Title列,因为这很可能会有我的结果,但是Description也可能包含结果但我希望它优先考虑Title over Description中的一个词(但我不想使用CONTAINSTABLE,因为这太具体了)。有没有办法使用FREETEXTTABLE给出列权重/优先级?

1 个答案:

答案 0 :(得分:13)

你需要对一个联合使用2个查询,提供你自己的“权重”,如下所示:

select  [key], sum(rnk) as weightRank
from
        (
            select Rank * 2.0 as rnk, [key] from freetexttable(tableName,Title,'free text string')
            union all
            select Rank * 1.0 as rnk, [key] from freetexttable(tableName,Description,'free text string')
        ) as t
group by [key]