solr-排序和查询的相对提升



我的文档的结构为以下 -

{
  "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的那一刻以将卡路里接近到用户的preferred_calories的距离,基于food_group的提升就会丢失

尝试使用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 query parser#thedismaxsquerparser-thebf(boostfunctions(参数

最新更新