【发布时间】:2018-09-08 06:18:07
【问题描述】:
我的文档是典型的电子商务目录产品,比如足球鞋。
这是一个字段子集:
- 身份证
- 标题
- 说明
- sold_units (整数)
- available_units(整数)
- 新的(布尔值)
我现在的排序标准是:new desc, sold_units desc, available_units desc。
我想先展示“新”产品,然后是畅销产品,然后是库存最高的产品。
这行得通,但使用“排序”参数,文本相关性(分数)完全丢失。我得到了新产品,畅销书......绝对不能满足我的搜索查询。
(例如,我搜索“Nike Mercurial”,并获得“Nike Hypervenom”产品作为第一个结果,因为它们是畅销产品)
我正在寻找一种将 Solr 搜索分数与排序字段“组合”的方法。
我认为这是一个“提升”问题,不是吗?我的意思是构建一个以 (score, new, sold_units) 作为参数的函数并将其用于排序。
您有什么建议可以帮助我,或者至少对如何进行有什么想法吗? 谢谢
--- 编辑---
我确实相信提升是解决方案。
我的 /select 搜索处理程序默认使用 edismax 解析器,所以我的 boost 字段可以完成工作:
boost=sum(1,product(1,sold_units))
如果我需要提升 MULTIPLE 字段(布尔值“新”也是如此)怎么办?
【问题讨论】:
标签: search solr lucene full-text-search