SQL可以安装的多个列 - 哪个列包含结果

时间:2017-02-07 15:24:25

标签: sql-server filtering containstable

根据结果所在的列,我收到了一个为搜索结果添加相关性得分的规范。例如,我有一个产品表,其中包括关键字,productNames和品牌。

我目前通过链接

查看产品
JOIN CONTAINSTABLE(Products, (keywords, productNames, brands), '"NIKE*"')

现在这将找到包含搜索词的记录,但我需要按列对结果进行加权,例如。关键词得分1,产品名称得分2,品牌4等。我可以将得分的总和加在一起,得出结果的相关性。即如果" Nike"在所有三列中,它将获得7分,仅在品牌4等中

为了方便这一点,我需要知道哪些列包含稳定匹配,但是没有找到任何详细信息。

我查看了ISABOUT选项,但这可以在一列中对多个搜索字词进行加权。

目前我有个案陈述

CASE WHEN CONTAINS (Keywords, '"Nike*"') THEN 1 ELSE 0 END +
CASE WHEN CONTAINS (productNames, '"Nike*"') THEN 2 ELSE 0 END +
CASE WHEN CONTAINS (brands, '"Nike*"') THEN 4 ELSE 0
AS Relevance

哪种方法有效,但似乎非常浪费,因为必须已经完成了这项工作。

如果有人有任何想法,那么他们会感激不尽。

0 个答案:

没有答案