2013-05-16 2 views
0

나는 초급자가 solr입니다. 설치하고 schema.xml 파일 작업을 시작했습니다. [schema.xmlexample/solr/collection1/conf 디렉토리에 제공]solr의 schema.xml을 이해합니다.

<fieldType name="text_en" class="solr.TextField" positionIncrementGap="100"> 
     <analyzer type="index"> 
     <tokenizer class="solr.StandardTokenizerFactory"/> 
     <!-- in this example, we will only use synonyms at query time 
     <filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/> 
     --> 
     <!-- Case insensitive stop word removal. 
      add enablePositionIncrements=true in both the index and query 
      analyzers to leave a 'gap' for more accurate phrase queries. 
     --> 
     <filter class="solr.StopFilterFactory" 
       ignoreCase="true" 
       words="lang/stopwords_en.txt" 
       enablePositionIncrements="true" 
       /> 
     <filter class="solr.LowerCaseFilterFactory"/> 
    <filter class="solr.EnglishPossessiveFilterFactory"/> 
     <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/> 
    <!-- Optionally you may want to use this less aggressive stemmer instead of PorterStemFilterFactory: 
     <filter class="solr.EnglishMinimalStemFilterFactory"/> 
    --> 
     <filter class="solr.PorterStemFilterFactory"/> 
     </analyzer> 
     <analyzer type="query"> 
     <tokenizer class="solr.StandardTokenizerFactory"/> 
     <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/> 
     <filter class="solr.StopFilterFactory" 
       ignoreCase="true" 
       words="lang/stopwords_en.txt" 
       enablePositionIncrements="true" 
       /> 
     <filter class="solr.LowerCaseFilterFactory"/> 
    <filter class="solr.EnglishPossessiveFilterFactory"/> 
     <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/> 
    <!-- Optionally you may want to use this less aggressive stemmer instead of PorterStemFilterFactory: 
     <filter class="solr.EnglishMinimalStemFilterFactory"/> 
    --> 
     <filter class="solr.PorterStemFilterFactory"/> 
     </analyzer> 
    </fieldType> 

내가 의미에서 위의 코드를 이해하지 못하고,이 라인의 사용 무엇 :

<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/> 
는 하나 개의 특정 코드는 다음과 같다

동일한 디렉토리에 synonyms.txt 파일을 사용하여 예제를 그렸다 고 생각합니다. 위의 코드를 수정하여 예제를 제외하고 일반적인 경우에 사용할 수있게하려면 어떻게해야합니까?

답변

0

해당 줄을 주석으로 처리하십시오. 필터 (Char 및 Token 유형 모두)는 모두 선택 사항입니다. 토크 나이저 만 있어야합니다.

문제가 계속되면 문자열 유형 (토큰 화기 없음) 만 사용하십시오. 그런 다음 일반 토큰 화가가있는 매우 기본적인 유형으로 전환 한 다음 빌드하십시오.

0

예는

  • 필드 타입에 매핑되는 필드의 측면에인가 될 토큰 화 및 필터에 세트를 정의한 이름 text_en하여 필드 타입을 지정한다.
  • 인덱스 시간과 검색 시간에 서로 다른 일련의 필터 시퀀스를 정의 할 수 있습니다.
  • 색인 된 용어의 동작과 검색 동작 방식을 결정합니다.

예제와 함께 전체 분석기 목록 @Link을 확인할 수 있습니다.

언제든지 새 필드 유형을 정의하고 해당 필드 유형에 필드를 매핑 할 수 있습니다.
예 : 검색에서 대소 문자를 구분하지 않으려면 소문자 필터 만 사용하십시오.

요구 사항에 따라 필터를 조정하십시오.

SynonymFilterFactory 등의 용어에 대해 동의어를 정의하는 데 도움이됩니다. 자동차, 자동차는 동일하지만 다른 단어입니다.
검색을 통해 동의어를 해결하려는 경우이 필터를 사용하고 동의어는 Solr 코어 conf 디렉토리 내의 텍스트 파일에 정의됩니다.

관련 문제