我在一个搜索应用程序中使用Solr,其中的数据被划分为不同的类型,但在同一个集合中。集合中的每个文档都有定义数据类型的d_type
字段。
示例
考虑我有5种类型的数据
d_type=ds1
d_type=ds2
d_type=ds3
d_type=ds4
d_type=ds5
我想应用助推,但基于用户偏好。我已经将每个用户的用户偏好存储在其他集合中。现在在运行时,我调用用户偏好集合,并在对象中获取登录用户的偏好即
{
"1" : "ds4",
"2" : "ds5",
"3" : "ds1",
"4" : "ds3",
"5" : "ds2",
}
在上述示例中,ds4
具有最高优先级,而ds2
具有最低优先级我已经尝试用Solr查询添加bq
,但没有得到预期的结果
/select?bq=d_type:ds4^5+d_type:ds5^4+d_type:ds1^3+d_type:ds3^2+d_type:ds2^1
上述查询无法按预期工作。请告诉我这里出了什么问题。
solr版本:7.7.2
感谢
我通过解决了这个问题
-
添加
&defType=edismax
-
添加我的多个
bq
参数 -
增加分数之间的差距
/select?bq=d_type:ds4^500&bq=d_type:ds5^400&bq=d_type:ds1^300&bq=d_type:ds3^200&bq=d_type:ds2^100&defType=edismax