Solr 中的自定义提升
Customized Boosting in Solr
我在一个搜索应用程序中使用 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
我在一个搜索应用程序中使用 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