0

我有以下请求处理程序,它搜索两个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&lt;-1 5&lt;-2 6&lt;-40%</str> <!-- HERE -->
    </lst>
  </requestHandler>

问题:是什么原因造成的,如何解决。

4

1 回答 1

1

我认为您的 mm 参数格式错误。根据规范,您只能组合多个条件参数。但是,您的第一个参数 (2) 不是有条件的。您能否将整个表达式重写为一组条件参数,看看是否会消失。

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

于 2013-01-20T18:10:07.810 回答