2016-10-21 4 views
1

자동 완성을 위해 Apache Solr Suggester를 사용하고 있습니다. 'DC'로 검색 할 때 다른 값과 함께 DC-UK_ITP 응답을받습니다.Solr Suggester 텍스트 포함 -

DC-UK_ITP를 검색 할 때 값을 찾을 수없고 제안을 반환하지 않습니다.

값을 올바르게 찾을 수 있도록 DC-UK_ITP 값을 어떻게 전달해야합니까?

Solr 구성에서 수행해야 할 설정이 있습니까?

+0

은 분석기가 ..they이 제거되어야 사용 확인. . 도움이 될 것입니다. –

답변

0

"Suggester"는 인덱싱 된 필드에 해당하는 토큰 사전에서 문자 "DC"로 시작하는 토큰을 검색합니다.이 경우 토큰 "DC-UK_ITP"를 검색합니다. 다르게 인덱싱 된 다른 필드에 쿼리를 만들고 "DC-UK_ITP"를 검색 용어로 사용하고이 다른 용어 사전 (다른 필드에 해당)에이 필드가 들어 있지 않습니다.

0

이 solrconfig.xml에서 "suggestAnalyzerFieldType"매개 변수에 눈을 유지하는 것이 중요하다 "SUGGESTER"구성 요소를 구성 할 때 SUGGESTER 내장 할 때 "인덱스 시간"(에서 생산 된

<searchComponent name="suggest" class="solr.SuggestComponent"> 
    <lst name="suggester"> 
    <str name="name">mySuggester</str> 
    ... 
    <str name="suggestAnalyzerFieldType">suggest_type</str> 
    ... 
    </lst> 
</searchComponent> 

값의 데이터 구조)는 "쿼리 시간"(본질적으로 쿼리를 실행할 때)에서 얻을 수있는 값과 일치하고 일치해야합니다.

고려하면이의 schema.xml에서 설정을 다음

 "suggest_field": ["DC-UK_ITP"]
와 문서는 다음과 같은 조건을 인덱스에 저장됩니다
<field name="suggest_field" type="suggest_type" indexed="true" stored="true" multiValued="true"/> 
<fieldType name="suggest_type" class="solr.TextField"> 
    <analyzer> 
    <tokenizer class="solr.StandardTokenizerFactory"/> 
    <filter class="solr.TrimFilterFactory" /> 
    <filter class="solr.LowerCaseFilterFactory" /> 
    </analyzer> 
</fieldType> 

: DC, uk_itp. 중위 조회를 분석

<searchComponent name="suggest" class="solr.SuggestComponent"> 
    <lst name="suggester"> 
    <str name="name">infixSuggester</str> 
    <str name="lookupImpl">AnalyzingInfixLookupFactory</str> 
    <str name="dictionaryImpl">DocumentDictionaryFactory</str> 
    <str name="field">suggest_field</str> 
    <str name="weightField">price</str> 
    <str name="suggestAnalyzerFieldType">suggest_type</str> 
    <str name="buildOnStartup">false</str> 
    </lst> 
</searchComponent> 

은 또한 당신이 경우에 매우 편리 응답에서 강조 나타납니다 :이하기 위해

는 기반 SUGGESTER 나는 다음과 같이 AnalyzingInfixLookupFactory 조회를 고려하는 것이 좋습니다 "포함" 검색 창 UI에서 직접 사용합니다. 일치하는 전략은 당신이 어떤 접두사와 일치 할 수 있습니다, 그래서 당신은 하나에 의해 원래의 "DC-UK_ITP"값과 일치 할 수 있습니다 :

  • & suggest.dictionary = infixSuggester & suggest.q = 직류
  • & suggest.dictionary = infixSuggester & suggest.q = 영국
  • & suggest.dictionary = infixSuggester & suggest.q = DC-uk_itp

사용 주제에 FUL 자원 : - DC-UK에서 추가 ... 당신이 사용하는 fieldTYpe을 공유 할 수 있다면

+0

아래의 solrconfig 및 스키마 항목을 찾으십시오. - –

+0

suggestMapName AnalyzingInfixLookupFactory \t을 .............. ....... mapName_partial 맵 이름 mapName_text mapName_text_suggest \t ......................

+0

내가 아는 바로는 solrconfig.xml은 앞서 언급 한 것과 비슷한 설정을 가지고 있습니다. –