在我的全文搜索查询中,我想为特定列指定更高的权重。考虑此查询:如何在全文搜索中将权重分配给不同的列?
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