在Solr中排除构面值

2020-08-27 15:37发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我正在做一些分析,以从Solr搜...

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

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


我正在做一些分析,以从Solr搜索中排除某些Facet值,以便这些产品不会出现在搜索结果中。

假设我有很多彩色T恤(不知道有多少个),有人告诉我在搜索结果中不要显示红色T恤。 有两种选择

选项1:我必须在系统中获取所有T恤的颜色,然后在Solr结果中添加一个滤镜

 例如:

                 List  colorList = getAllColors(); //获取除红色外的所有颜色
                 for(字符串颜色:colorList){
                       searchQuery.addFacetValue(" color",color);
                 }
  

这将添加一个颜色为SolrIndexedProperty的滤镜,它将解决该问题。

但是我并不奇怪采用这种方法。

选项2:从Solr搜索结果中排除红色属性,而不是对所有颜色应用滤镜。 Solr Query就像这样..

  q = *:* AND -color_string:red
                //如果有多种颜色,则排除
                 q = *:* AND -color_string:(红色白色)

  

这将从结果中排除红色T恤。 但是我找不到应该选择哪种服务或方法来进行这样的查询。

有人知道如何通过service/method/searchQuery实现此查询(q = : AND -color_string:red)吗?