Solr最小匹配:ArrayIndexOutOfBoundsException

时间:2013-01-19 20:09:36

标签: solr edismax dismax

我有以下请求处理程序,可以搜索两个text_en字段,TitleBody。查询工作查找没有最小匹配设置。如果我使用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&lt;-1 5&lt;-2 6&lt;-40%</str> <!-- HERE -->
    </lst>
  </requestHandler>

问题:造成这种情况的原因,以及如何解决。

1 个答案:

答案 0 :(得分:1)

我认为你的mm参数是错误的。根据{{​​3}},您只能组合多个条件参数。然而,你的第一个参数(2)不是有条件的。你能否将整个表达式重写为一组条件参数,看看是否会消失。

或者,我会尝试他们的例子(2&lt; -25%9&lt; -3),看看你是否得到同样的问题。如果不这样做,请继续修改它,直到遇到问题或得到你需要的东西。