我有以下请求处理程序,可以搜索两个text_en
字段,Title
和Body
。查询工作查找没有最小匹配设置。如果我使用mm字段,如果我的搜索字符串超过2个术语,我会得到:
null:java.lang.ArrayIndexOutOfBoundsException: 1
at org.apache.solr.util.SolrPluginUtils.calculateMinShouldMatch(SolrPluginUtils.java:547)
我的请求处理程序:
<requestHandler name="/broadQuery" class="solr.SearchHandler">
<lst name="defaults">
<str name="defType">edismax</str>
<str name="wt">xml</str>
<str name="fl">ListingId</str>
<str name="qf">Title^2 Body</str>
<str name="rows">100</str>
<str name="pf">Title^4 Body^2</str>
<str name="ps">0</str>
<str name="echoParams">all</str>
<str name="mm">2 3<-1 5<-2 6<-40%</str> <!-- HERE -->
</lst>
</requestHandler>
问题:造成这种情况的原因,以及如何解决。
答案 0 :(得分:1)
我认为你的mm参数是错误的。根据{{3}},您只能组合多个条件参数。然而,你的第一个参数(2)不是有条件的。你能否将整个表达式重写为一组条件参数,看看是否会消失。
或者,我会尝试他们的例子(2&lt; -25%9&lt; -3),看看你是否得到同样的问题。如果不这样做,请继续修改它,直到遇到问题或得到你需要的东西。