Solr - 在学期开始时以完全匹配的方式提升结果

Posted

技术标签:

【中文标题】Solr - 在学期开始时以完全匹配的方式提升结果【英文标题】:Solr - Boost result with exact match in the begginning of term 【发布时间】:2021-12-05 10:36:16 【问题描述】:

对于电子商务商店,我在 Solr 中有两种类似的产品

    easyCover 硅胶保护套适用于佳能 EOS 80D(迷彩) 佳能 EOS 80D 单反相机,带 18-135 毫米镜头

现在,对于搜索查询“Canon EOS 80D”,我得到的产品排名为 1,2。

如何将产品 2 排名第一,即“Canon EOS 80D DSLR Camera with 18-135mm Lens”排名第一?

基本上,与在名称短语中具有相同术语而不是第一个术语的产品相比,我想为在名称短语开头具有术语的产品提供更多的提升/重量年龄。

请指教。

【问题讨论】:

我的第一个猜测是查看 boost 函数/查询参数 (solr.apache.org/guide/8_0/…),但我不确定内置函数 (solr.apache.org/guide/8_0/function-queries.html) 是否能满足您的要求。跨度> 你见过这个吗? ***.com/a/12079279/446681 使用通配符匹配的字符串字段作为提升查询应该可以;小写文本(或使用带有 KeywordTokenizer 和 LowercaseFilter 的 TextField)和查询,并使用 bqboost 对具有前缀匹配的任何内容应用提升 - 只要您想要的是完全匹配从文本的开头开始,而不是在常规搜索中“较早匹配的令牌应该得分更高”(在这种情况下,有效负载提升可能是这样做的方法) 【参考方案1】:

我强烈建议不要使用令牌位置来提升您的产品而不是配件。假设客户正在搜索“EOS 80D” - 他仍然会在第一个位置找到硅胶盖。

更好的解决方案是在次要领域进行提升。一些想法:

在价格上设置一个提升功能,因为主要产品通常都有 作为配件价格更高,例如bf=log(price) 使用字段对产品和配件中的项目进行分类 - 并对此进行提升,例如bq=category:product 创建一个字段以列出评估员可以使用的产品 和。这也将有助于您在未来宣传配件。 但它现在也有助于找到主要产品,通过提高 此处不包含参考的文档。

我知道这个答案不是原始问题的直接解决方案 - 但如果您从远处看问题,有时会有更简单的解决方案。

【讨论】:

对我来说似乎是个好主意,但看起来不是那样的。感谢分享。认真考虑实施

以上是关于Solr - 在学期开始时以完全匹配的方式提升结果的主要内容,如果未能解决你的问题,请参考以下文章

由于url大小超过SOLR而使用map函数进行排序的问题

Dapper Extension LIKE 运算符在匹配字符串时以相反的顺序返回结果

Solr的精确匹配搜索

如何在 solr 1.3 中获得准确的搜索结果?

打印时以编程方式添加脚注(图像)

solr如何让全词匹配结果在最前面