【问题标题】:Solr Boost-Function on SalesSolr Boost-Function on Sales
【发布时间】:2019-05-29 09:14:36
【问题描述】:

我将 Apache Solr 8 与产品一起用作文档。每个文档都包含我想要提升的过去 X 天内的销售额,以及标题和其他字段。

假设productA已售出5次,我想给它加分+10;某产品B已售出50次,我想将分数提高30。

我尝试使用看起来像(edismax 查询解析器)的 boostFunction

q=Coffee&qf=title&bf=if(lt(sales,5),10,if(lt(sales,50),30))

Solr 现在返回与我的“Coffee”查询无关但仅与 boost 函数匹配的文档。甚至有得分为“0”的结果。 例如

Rank;Score;Sales;Title
1;58.53;55;Coffee big
2;38.11;50;Coffee
3;30;55;Tea

有什么想法可以摆脱那些“仅增强功能”的匹配项吗?

【问题讨论】:

    标签: solr solr-query-syntax solr-boost


    【解决方案1】:

    找到答案了!

    我的查询字段实际上包括诸如

    之类的提升
    &qf=title^2 longDescription^0 whatever^0...
    

    solr 不排除在那些 0 提升字段中找到的结果,而是将它们添加并匹配 - 以及得分 0。

    当我删除 0-boostings 时,一切都按预期工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-28
      • 2023-02-09
      • 2016-03-16
      • 1970-01-01
      • 2012-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多