Я новичок в 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?