在SearchFilterQueryData中使用OR运算符构建SOLR过滤器查询

2020-09-05 00:54发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家们, 在CategoryP...

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

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


专家们,

在CategoryPageController中搜索期间,我试图修改SOLR查询并添加一些过滤器参数(大约4个过滤器参数)和类似示例:

 最终SearchFilterQueryData searchNameFilterQuery = new SearchFilterQueryData();
  searchNameFilterQuery.setKey(" name");
  searchNameFilterQuery.setValues(new HashSet <>
    (Collections.singletonList(queryData.get(" name")))));
  searchNameFilterQuery.setOperator(FilterQueryOperator.OR);

  

并将其添加到this.searchQueryData.setFilterQueries列表中。

现在正在形成查询,

yq = :&q = {!boost}(%2B {!lucene + v%3D $ yq})&fq = allCategories_string_mv:1&fq = gskProductAvailability_string_mv:ACTIVE&fq = code_string:ACLOV&fq = name_usecscontexttext_zh_CN :ACLOV&fq = productIdentifier_text_mv:ACLOV

因此,当前查询为每个要搜索的属性添加一个 fq 参数,但是我想在此处使用OR条件,例如fq =(gskProductAvailability_string_mv:ACTIVE OR code_string:ACLOV OR name_usecscontext_en_us_text:ACLOV OR productIdentifier_text_mv:ACLOV

如何通过SearchFilterQueryData或类似功能启用此功能? 有人遇到过类似的事情吗?

关于病毒,

6条回答
绿领巾童鞋
2020-09-05 01:25

您好,Viral,您可以通过扩展现有的SearchFilterPopulator来实现。 在那里,您将获得SearchQuery对象,以添加过滤器查询并设置运算符。

一周热门 更多>