autoGeneratePhraseQueries = "false" и WordDelimiterFilterFactory - PullRequest
0 голосов
/ 26 апреля 2011

Я новичок в 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
Текущее время: вторник, 26 апреля 08:01:09 CEST 2011
Время запуска сервера: вторник, апрель26 07:59:05 CEST 2011

У меня есть следующее определение типа 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>

Есть ли у вас какие-либо идеи, как мне избежать этого MultiPhraseQuery?

1 Ответ

0 голосов
/ 28 апреля 2011

Robert Muir ответил в списке рассылки solr:

Что у вас есть в solrconfig.xml для luceneMatchVersion

Если вы не установите это, то это происходит по умолчанию эмуляция Lucene 2.9 так что старые конфиги solr 1.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>

Это сработало для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...