0

我收到了一个规范,可以根据结果所在的列向搜索结果添加相关性分数。例如,我有一个产品表,其中包含关键字、产品名称和品牌等字段。

我目前通过链接查找产品

JOIN CONTAINSTABLE(Products, (keywords, productNames, brands), '"NIKE*"')

现在这将找到带有搜索词的记录,但我需要按列对结果进行加权,例如。关键词得分 1,productNames 得分 2,brands 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

哪个确实有效,但似乎非常浪费,因为 containstable 必须已经在做这项工作。

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

4

0 回答 0