首页 文章

如何在Solr中对产品搜索结果进行排序/提升

提问于
浏览
0

我的文件是典型的电子商务目录产品,比方说足球鞋 .

这是一个字段子集:

  • id

  • Headers

  • 说明

  • sold_units(整数)

  • available_units(整数)

  • new(布尔值)

我现在的排序标准是: new desc, sold_units desc, available_units desc .

我想展示“新”产品,然后是畅销产品,然后是最高库存产品 .

这有效,但使用'sort'参数,文本相关性(得分)完全丢失 . 我得到新产品,畅销书......绝对不满足我的搜索查询 .

(例如,我搜索'Nike Mercurial',并获得'Nike Hypervenom'产品作为第一批结果,因为它们是畅销书)

我正在寻找一种方法来“结合”Solr搜索得分和排序字段 .

我认为这是一个“提升”的问题,不是吗?我的意思是 Build 一个函数(score,new,sold_units)作为参数并用它来进行排序 .

你有任何建议可以帮助我,或者至少有关于如何进行的想法吗?谢谢

--- EDIT ---

我相信提升是解决方案 .

我/ select搜索处理程序默认使用edismax解析器,因此我的boost字段可以完成工作:

boost=sum(1,product(1,sold_units))

如果我需要在MULTIPLE字段上进行提升(布尔值'new'),该怎么办?

1 回答

  • 2

    sum 将采用多个参数 . 开始将加速模型建模为加权产品的总和可能会有所帮助 . 例如:boost = Ax By Cz其中(x,y,z)=(新的,已售出的,可用的),A,B和C是您推断的常数,可以根据您的相关性定义适当地加权这些特征 .

    应用于edismax查询的 boost 函数只需乘以文本匹配分数即可生成排名结果中使用的最终分数 . 因此,当提出你的助推功能时,目标通常是“巧妙地”(不显着)影响已经相当接近的文本匹配分数 .

    您还可以查看Quepid.com等工具,以帮助您评估最常见查询的更改结果 .

相关问题