点击此处---> 群内免费提供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)吗?
因此,经过一番尝试后,我得到了解决方案。
在searchQuery中,我们也可以添加Raw Query。 因此,我已经在addRawQuery方法中设置了查询。
这使它可行!
您认为您可以使用Lucene语法吗? SOLR排除搜索结果
其标准功能可在商业搜索模块,您甚至可以按类别重新配置方面可见性
您还可以将DefaultSolrQueryConverter#convertSolrQuery方法用作 >
solrQuery.addFilterQuery(queryString);//queryString(color_string:blue)用作过滤器查询。
在searchQuery中,我们也可以添加Raw Filter Query。 因此,我已经在addFilterRawQuery方法中设置了查询。
对于单个值
对于多个值
一周热门 更多>