0

我正在尝试创建一个查询,该查询根据一些必需属性和一些仅影响权重的可选属性返回最佳产品。

需要属性 1-3

属性 4-5 可选

评级 1-3 可选

数据在 solr db 中的结构如下:

property1 (string)
property2 (string)
property3 (string)
property4 (string)
property5 (string)

rating1 (int)
rating2 (int)
rating3 (int)

到目前为止我创建的查询让我很接近,但它没有考虑可选字段与特定请求值的接近程度。

例如,效率或有用性等任意属性的评级为 1-5。我需要它承认,如果用户希望将 rating1 设置为 4,那么值 3 和 5 仍然有效,只是同样少。值 2 的权重也大于 1。所以它基本上根据产品与所需评级值的距离来创建一个比例。

defType = dismax
sort = score desc
fl = entity_id,score,property4,property5,rating1,rating2,rating3
fq = property1:215 property2:45 property3:17
bq = property4:(H)^5 OR property5:(87)^5 OR rating1:(1)^5 OR rating2:(3)^5 OR rating3:(5)^5
4

1 回答 1

1

由于您有对评分进行数学计算的规则,因此我将使用函数 query。你可以做任何你认为在这种情况下效果最好的数学运算,结果可能会影响提升分数。

于 2013-08-29T00:59:29.553 回答