Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Solr StandardTokenizerFactory tokinize on dots过滤器_Java_Apache_Solr_Solrj - Fatal编程技术网

Java Solr StandardTokenizerFactory tokinize on dots过滤器

Java Solr StandardTokenizerFactory tokinize on dots过滤器,java,apache,solr,solrj,Java,Apache,Solr,Solrj,我不想在我的索引中搜索某些数字,但我对某些结果有困难。(我正在使用eDiscoveryMax。) 例如: Term in index I want to search: b1.123.456 Query I use is b1 123 456 (no spaces) 这不起作用,因为一个。不同于-(我已经阅读了文档) 我寻找解决方案,发现我必须在我的字段上使用过滤器: <fieldType name="text_general" class="solr.TextFiel

我不想在我的索引中搜索某些数字,但我对某些结果有困难。(我正在使用eDiscoveryMax。)

例如:

    Term in index  I want to search: b1.123.456
    Query I use is b1 123 456 (no spaces)
这不起作用,因为一个。不同于-(我已经阅读了文档) 我寻找解决方案,发现我必须在我的字段上使用过滤器:

<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
  <analyzer type="index">
    <charFilter  class="solr.MappingCharFilterFactory" mapping="mapchar.txt" />
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
    <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
  <analyzer type="query">
    <charFilter  class="solr.MappingCharFilterFactory" mapping="mapchar.txt" />
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
    <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
    <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
</fieldType>
为什么没有短语搜索的普通eDiscoveryMax查询返回0个结果?

编辑:

使用上次查询时,我在日志中发现一个错误:

<record>
  <date>2012</date>
  <millis></millis>
  <sequence></sequence>
  <logger>org.apache.solr.servlet.SolrDispatchFilter</logger>
  <level>SEVERE</level>
  <class>org.apache.solr.common.SolrException</class>
  <method>log</method>
  <thread>12</thread>
  <message>null:java.lang.NumberFormatException: For input string: ""
    at java.lang.NumberFormatException.forInputString(Unknown Source)
    at java.lang.Integer.parseInt(Unknown Source)
    at java.lang.Integer.parseInt(Unknown Source)
    at org.apache.solr.util.SolrPluginUtils.calculateMinShouldMatch(SolrPluginUtils.java:563)
    at org.apache.solr.util.SolrPluginUtils.setMinShouldMatch(SolrPluginUtils.java:518)
    at org.apache.solr.search.ExtendedDismaxQParser.parse(ExtendedDismaxQParserPlugin.java:264)
    at org.apache.solr.search.QParser.getQuery(QParser.java:143)
    at org.apache.solr.handler.component.QueryComponent.prepare(QueryComponent.java:118)
    at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:185)
    at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:129)
    at org.apache.solr.core.SolrCore.execute(SolrCore.java:1699)
    at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:455)
    at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:276)
    at ...
</message>
</record>

2012
org.apache.solr.servlet.SolrDispatchFilter
严峻的
org.apache.solr.common.SolrException
日志
12
null:java.lang.NumberFormatException:用于输入字符串:“”
位于java.lang.NumberFormatException.forInputString(未知源)
位于java.lang.Integer.parseInt(未知源)
位于java.lang.Integer.parseInt(未知源)
位于org.apache.solr.util.SolrPluginUtils.calculateMinShouldMatch(SolrPluginUtils.java:563)
位于org.apache.solr.util.SolrPluginUtils.setMinShouldMatch(SolrPluginUtils.java:518)
位于org.apache.solr.search.ExtendedDismaxQParser.parse(ExtendedDismaxQParserPlugin.java:264)
位于org.apache.solr.search.QParser.getQuery(QParser.java:143)
位于org.apache.solr.handler.component.QueryComponent.prepare(QueryComponent.java:118)
位于org.apache.solr.handler.component.SearchHandler.HandlerRequestBody(SearchHandler.java:185)
位于org.apache.solr.handler.RequestHandlerBase.HandlerRequest(RequestHandlerBase.java:129)
位于org.apache.solr.core.SolrCore.execute(SolrCore.java:1699)
位于org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:455)
位于org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:276)
在

由于默认查询处理程序工作(/select),我开始认为我的查询处理程序有问题

为了找出问题所在,我开始稍微禁用我自己的请求处理程序的一些部分

  <!--<str name="mm"></str>-->

空mm会给您带来错误

我曾经有一个mm参数,但我真的不再需要它了,所以我把它留了空

  <!--<str name="mm"></str>-->