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