相关疑难解决方法(0)

如何在全文搜索中为不同列指定权重?

在我的全文搜索查询中,我想为特定列分配更高的权重.考虑这个查询:

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是如何工作的,请道歉.

sql-server full-text-search

9
推荐指数
1
解决办法
4991
查看次数

标签 统计

full-text-search ×1

sql-server ×1