Apache Solr搜索“AND”

时间:2016-12-15 18:45:27

标签: solr

我正在研究Apache Solr。

目前,它运作良好。当我输入pork AND belly时,它会返回包含porkbelly的所有查询。

但我需要搜索pork and belly并获得相同的结果。

但它没有,因为它会返回porkandbelly的所有结果。

最简单的方法是在发送查询之前在JavaScript中更改它。

但有没有办法通过更新config从Apache Solr做到这一点?

感谢。

我做了什么:我试图通过在schema.xml添加PatternReplaceCharFilterFactory来在dynamic field中切换它,但很明显它失败了。

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

eDisMax查询解析器默认接受小写运算符。在solrconfig.xml中,指定该解析器,您还可以明确告诉它接受小写运算符:

<requestHandler name="search" class="solr.SearchHandler" default="true">
   <lst name="defaults">
     <str name="defType">edismax</str>
     <bool name="lowercaseOperators">true</bool>
   </lst>
   ...
</requestHandler>

答案 1 :(得分:0)

如果您使用的是(e)dismax查询处理程序,只需使用pork belly搜索q.op=AND即可。只要您为您的集合(以及正确的字典)配置了StopWordFilter,and将自动删除。与Solr捆绑在一起的默认stopwords_en.txt文件在其列表中包含该文件。