2

我有一个支持完全匹配和部分匹配的 SOLR 查询。查询词添加了适当的提升因子,其中精确匹配与部分匹配相比具有更高的提升。

然而,在部分匹配中,我们也希望以这样的方式定义增强因子:

具有完整单词的部分匹配比作为单词的一部分出现的部分匹配具有更高的优先级。

例如:如果用户搜索字符串“Annie Hall”,则与“ Halloween ”等值相比,包含“ Tanner Hall ”、“ Hall Pass ”等值的文档应该具有更高的权重(优先级) , " "拯救万圣节的狗"。它们都是部分匹配,但 "Hall" 在 "Tanner Hall" 和 "Hall Pass" 中作为单独的词出现,因此它们应该有更多的分数。

请帮忙。

问候,

4

1 回答 1

2

我假设您正在使用 ngram 过滤器进行查询,因为它能够匹配全部和部分匹配。

如果是这样,您总是可以有两个字段。

  • 具有更高提升的非 Ngramed 字段 - 文本
  • 具有正常提升的 Ngramed 字段 - text_ngram

例如对于 dismax -text^2 text_ngram将导致完美匹配比部分匹配具有更高的提升。
请记住,如果有完全匹配,也会有部分匹配,因此它是累积提升。

于 2013-01-31T05:48:18.607 回答