Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.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
Solr autoGeneratePhraseQueries=“false”和WordDelimiterFilterFactory_Solr - Fatal编程技术网

Solr autoGeneratePhraseQueries=“false”和WordDelimiterFilterFactory

Solr autoGeneratePhraseQueries=“false”和WordDelimiterFilterFactory,solr,Solr,我是新来solr的。我的solr实例版本是: Solr规范版本:3.1.0 Solr实施版本:3.1.0 1085815-grantingersoll-2011-03-26 18:00:07 Lucene规范版本:3.1.0 Lucene实现版本:3.1.0 1085809-2011-03-26 18:06:58 当前时间:2011年4月26日星期二08:01:09 CEST 服务器启动时间:2011年4月26日星期二07:59:05 CEST 我对textgen类型有以下定义: <fie

我是新来solr的。我的solr实例版本是:

Solr规范版本:3.1.0 Solr实施版本:3.1.0 1085815-grantingersoll-2011-03-26 18:00:07 Lucene规范版本:3.1.0 Lucene实现版本:3.1.0 1085809-2011-03-26 18:06:58 当前时间:2011年4月26日星期二08:01:09 CEST 服务器启动时间:2011年4月26日星期二07:59:05 CEST

我对textgen类型有以下定义:

<fieldType name="textgen" class="solr.TextField" positionIncrementGap="100" autoGeneratePhraseQueries="false">
  <analyzer type="index">
 <tokenizer class="solr.WhitespaceTokenizerFactory"/>
 <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
 <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" preserveOriginal="1"/>
 <filter class="solr.LowerCaseFilterFactory"/>
 <filter class="solr.EdgeNGramFilterFactory" minGramSize="1" maxGramSize="15" side="front" preserveOriginal="1"/>
  </analyzer>
  <analyzer type="query">
 <tokenizer class="solr.WhitespaceTokenizerFactory"/>
 <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
 <filter class="solr.StopFilterFactory"
 ignoreCase="true"
 words="stopwords.txt"
 enablePositionIncrements="true"/>
 <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" preserveOriginal="1"/>
 <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
</fieldType>
我在索引中使用此类型作为名称字段。如您所见,我使用的是autoGeneratePhraseQueries=false,但对于查询sony vaio 4gb,我在调试中得到以下查询:

<lst name="debug"> 
  <str name="rawquerystring">sony vaio 4gb</str> 
  <str name="querystring">sony vaio 4gb</str> 
  <str name="parsedquery">+name:sony +name:vaio +MultiPhraseQuery(name:"(4gb 4) gb")</str> 
  <str name="parsedquery_toString">+name:sony +name:vaio +name:"(4gb 4) gb"</str>

你知道我该如何避免这种多措辞吗?

Robert Muir在solr用户邮件列表中回答:

您在solrconfig.xml中有什么用途 luceneMatchVersion

如果你不设定这个,那么它就开始了 默认为Lucene 2.9仿真 因此,旧的Solr1.4配置了工作 同样的方式。我试过了你的例子,并且成功了 我猜在这里工作得很好 这可能就是正在发生的事情

中的默认值 示例/solrconfig.xml如下所示 这:

这对我有用

<!-- Controls what version of Lucene various components of Solr
    adhere to.  Generally, you want to use the latest version to
    get all bug fixes and improvements. It is highly recommended
    that you fully re-index after changing this setting as it can
    affect both how text is indexed and queried.
 -->
<luceneMatchVersion>LUCENE_31</luceneMatchVersion>