在我的全文搜索查询中,我想为特定列分配更高的权重。考虑这个查询:
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
现在,我希望 Name 列在结果中具有更高的权重(Name、Keywords 和 Location 是全文索引的)。目前,如果在三列中的任何一列中找到结果,则排名不受影响。
例如,我希望名称为“Chilly Chicken”的行比关键字“Chilly Chicken”的行具有更高的排名,但要使用另一个名称。
编辑:
我不急于使用 ContainsTable,因为这意味着分离短语(Chilly AND Chicken 等),这将涉及我必须搜索所有可能的组合 - Chilly AND Chicken、Chilly OR Chicken 等。我想要FTS 引擎自动找出最匹配的结果,我认为 FREETEXT 以这种方式做得很好。
如果我误解了 CONTAINS/CONTAINSTABLE 的工作原理,我深表歉意。