我的文件是典型的电子商务目录产品,让我们说足球鞋。
这是一个字段子集:
我现在的排序标准是:new desc, sold_units desc, available_units desc
。
我想展示" new"产品第一,然后是畅销产品,然后是最高库存产品。
这有效,但使用' sort'参数,文本相关性(得分)完全丢失。我得到新产品,畅销书......绝对不满足我的搜索查询。
(例如,我搜索' Nike Mercurial',并获得Nike Hypervenom'产品作为第一批结果,因为他们是最畅销的产品)
我正在寻找一种方法来结合"使用排序字段的Solr搜索分数。
我认为这是一个"提升"问题,不是吗?我的意思是建立一个函数(score,new,sold_units)作为参数并用它来进行排序。
您有什么建议可以帮助我,或者至少有关于如何进行的建议吗? 感谢
---编辑---
我相信提升是解决方案。
我/ select搜索处理程序默认使用edismax解析器,因此我的boost字段可以完成工作:
boost=sum(1,product(1,sold_units))
如果我需要在MULTIPLE字段上进行提升(布尔' new'也是如此),该怎么办?
答案 0 :(得分:2)
sum
将采用多个参数。开始将加速模型建模为加权产品的总和可能会有所帮助。例如:boost = Ax + By + Cz其中(x,y,z)=(新的,已售的,可用的),A,B和C是您推断的常数,可以根据您的相关性定义适当地加权这些特征。
应用于edismax查询的boost
函数只是乘以文本匹配分数,以生成排名结果中使用的最终分数。因此,当提出你的助推功能时,目标通常是“巧妙地”(不显着)影响已经相当接近的文本匹配分数。
您还可以查看Quepid.com等工具,以帮助您评估热门查询的更改结果。