我正在使用SQL Server全文搜索,使用关键字FREETEXTTABLE返回基于几列的结果表,搜索关键字。
现在我有两个我正在搜索的主要列,标题和描述,我想优先选择Title列,因为这很可能会有我的结果,但是Description也可能包含结果但我希望它优先考虑Title over Description中的一个词(但我不想使用CONTAINSTABLE,因为这太具体了)。有没有办法使用FREETEXTTABLE给出列权重/优先级?
答案 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]