2011-04-26 2 views
0

나는 solr을 처음 사용했습니다. 내 SOLR 인스턴스 버전은 다음과 같습니다autoGeneratePhraseQueries = "false"및 WordDelimiterFilterFactory

SOLR 사양 버전 : 3.1.0
SOLR 구현 버전 : 3.1.0 1085815 - grantingersoll - 2011-03-26 18시 0분 7초
루씬 사양 버전 : 3.1.0
Lucene 구현 버전 : 3.1.0 1085809 - 2011-03-26 18:06:58
현재 시간 : Tue Apr 26 08:01:09 CEST 2011
서버 시작 시간 : Tue Apr 26 07:59:05 CEST 2011

다음은 텍스트gen 유형에 대한 정의입니다.

<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> 

색인에 이름 필드에이 유형이 사용됩니다. 당신은 내가 디버그 쿼리 다음 = "거짓"하지만 내가 갖는 쿼리 SONY VAIO 4기가바이트에 대한 autoGeneratePhraseQueries를 사용하고 볼 수 있듯이 :

<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을 피할 수있는 방법 어떤 생각을 가지고 있습니까?

답변

0

로버트 뮤어는 SOLR 사용자 메일 링리스트에 대답

당신은 luceneMatchVersion에 대한 solrconfig.xml에 무엇을해야합니까?

이를 설정하지 않으면, 다음 을가는 기본값으로 그에게 "루씬 2.9"그래서 에뮬레이션 이 오래된 SOLR 1.4 CONFIGS가 같은 방식으로 작동합니다. 나는 당신의 예를 시험해 보았습니다. 이 여기에서 잘 작동했습니다. 그리고 이것은 아마도이라고 생각합니다.

예/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> 

그것은 나를 위해 일했습니다.