【问题标题】:Solr - Relative boost of sort and querySolr - 排序和查询的相对提升
【发布时间】:2017-09-19 13:49:51
【问题描述】:

我的文档结构如下 -

{
  "food_group":"Proteins",
  "carbs":"6.295",
  "protein":"13.729",
  "fat":"2.551",
  "calories":103.0
}

目的是按照用户在查询中喜欢的 food_group 的提升以及与用户偏好的卡路里的接近度确定的顺序获取文档。

基于 food_group 的提升实现如下-

(
food_group:"Proteins"^boost1  OR
food_group:"Dairy"^boost2  OR
food_group:"Grains"^boost3 
)

但是,当我添加abs(sub(preferred_calories,calories)) asc 以考虑卡路里与用户的首选卡路里的接近程度时,基于 food_group 的提升就会丢失

【问题讨论】:

    标签: search solr lucene


    【解决方案1】:

    尝试使用boost功能

    bf=div(1,abs(sub(100,calories)))
    defType=edismax
    q=(food_group:"Proteins"^100 OR food_group:"Dairy" OR food_group:"Grains")
    

    来源:https://cwiki.apache.org/confluence/display/solr/The+DisMax+Query+Parser#TheDisMaxQueryParser-Thebf(BoostFunctions)Parameter

    【讨论】:

      猜你喜欢
      • 2011-02-28
      • 1970-01-01
      • 2011-11-28
      • 2014-04-18
      • 1970-01-01
      • 2014-01-05
      • 1970-01-01
      • 2012-05-18
      • 1970-01-01
      相关资源
      最近更新 更多