如何在多值Solr索引属性中搜索多个值

2020-08-22 18:06发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 在SOLR中,索引已在基...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

在SOLR中,索引已在基础产品上完成。 在其他产品上,忠诚度积分得到管理。

创建了一个SOLR索引属性 pointsRequiredToPurchase ,该属性具有多值,可以容纳整数。 索引后,它具有如下值:

" pointsRequiredToPurchase_int_mv":[100,550]

在SOLR仪表板中,如果我执行查询 pointsRequiredToPurchase_int_mv:[500 TO *],我正在得到结果。

现在,当我通过SearchFilterQueryData传递此值时,它没有任何结果。

受保护的void setPointsFilter(List  listSearchFilterQueryData,整数点){
 StringBuffer sb = new StringBuffer();
 sb.append(" [")。append(points).append(" TO *]");
 字符串pointsRange = sb.toString();
//奖励目录合格产品的条件
 SearchFilterQueryData catalogEligibleQueryData = new SearchFilterQueryData();
 catalogEligibleQueryData.setKey(" pointsRequiredToPurchase");
 catalogEligibleQueryData.setOperator(FilterQueryOperator.AND);
 Set  valueSet =新的HashSet <>();
 valueSet.add(pointsRange);
 catalogEligibleQueryData.setValues(valueSet);
 listSearchFilterQueryData.add(catalogEligibleQueryData);
 }
 

随附的代码段。 添加此过滤器后,我没有任何结果。

在后处理器中,我可以看到如下查询:

yq = *:*&q = {!boost}(%2B {!lucene + v%3D $ yq})&fq = isRewardCatalogEligible_boolean:true&fq = inStockFlag_boolean:true&fq = pointsRequiredToPurchase_int_mv:\ [500 \ + TO \ + \ * \]&sort = mostSoldAllTime_int + desc☆t = 0&rows = 20

你能告诉我我做错什么了吗?

谢谢