2009-11-10 15 views
11

我正在使用SQL Server全文搜索,使用關鍵字FREETEXTTABLE返回基於幾列結果的表,搜索關鍵字。使用FREETEXTTABLE給列賦予優先級/權重

現在我有兩個主要的欄目,標題和描述,我想優先考慮Title列,因爲這很可能會有我的結果,但Description也可能包含結果,但我希望它給予優先權對於Title over Description中的單詞(但我不想使用CONTAINSTABLE,因爲這太具體了)。有沒有辦法使用FREETEXTTABLE給列權重/優先權?

回答

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]