在我的全文搜索查詢中,我想爲特定列指定更高的權重。考慮此查詢:如何在全文搜索中將權重分配給不同的列?
SELECT Key_Table.RANK, FT_Table.* FROM Restaurants AS FT_Table
INNER JOIN FREETEXTTABLE(Restaurants, *, 'chilly chicken') AS Key_Table
ON FT_Table.RestaurantID = Key_Table.[KEY]
ORDER BY Key_Table.RANK DESC
現在,我想的名字列在結果的權重較高(姓名,關鍵詞和位置全文索引)。目前,如果結果在三列中的任何一列中找到,則排名不受影響。
例如,我想要命名爲「Chilly Chicken」的行的排名高於關鍵字「Chili Chicken」的排名,但是是另一個名字。
編輯:
我並不急於使用CONTAINSTABLE,因爲這將意味着分離短語(寒冷和雞等),這將涉及我不得不尋找所有可能的組合 - 寒冷和雞肉,寒冷或雞等我想FTS引擎自動找出哪些結果最匹配,我認爲FREETEXT這樣做很好。
道歉,如果我誤解CONTAINS/CONTAINSTABLE如何工作。
我想知道是否有可能使用UNION的東西,但我的大腦無法處理涉及的SQL! :)我認爲這些都是很好的解決方案,其中一個可能會解決問題!讓我檢查並回復你。然而,我不明白爲什麼你提到了額外的操作? – 2008-10-14 05:38:36