2014-04-18 4 views
2

최근에는 여러 단어 (구)가있는 일부 값으로 필드에 패싯을 적용하려 했습니까? 대상 포진은 대상 목록에서 가져와야하므로 예상대로 작동하는지 확실하지 않습니다.solr의 문구 작성 방법은 무엇입니까?

예 : 필드에 패싯을 적용 할 때 '정보'및 '기술'에 대해 별도의 패싯을 얻지 만 '정보 기술'과 같은 단일 패싯으로 만들 수 있습니다.

특정 분야의 특정 문구를 강조하는 방법은 무엇입니까?

편집 : 필요한 필드에 대한 스키마는 다음과 같습니다 : 정보 기술과 정보 기술 (IT) : IT는 정보 기술에 대한 세 가지 측면을 같이

<fieldType name="text_en_splitting_tight" class="solr.TextField" positionIncrementGap="100" autoGeneratePhraseQueries="true"> 
     <analyzer> 
     <tokenizer class="solr.WhitespaceTokenizerFactory"/> 

     <filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_en.txt"/> 
     <filter class="solr.WordDelimiterFilterFactory" generateWordParts="0" generateNumberParts="0" catenateWords="1" catenateNumbers="1" catenateAll="0"/> 
     <filter class="solr.LowerCaseFilterFactory"/> 
     <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/> 
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="false"/> 
<filter class="solr.ShingleFilterFactory" maxShingleSize="2" outputUnigrams="true"/> 
<filter class="solr.EnglishMinimalStemFilterFactory"/> 
     <!-- this filter can remove any duplicate tokens that appear at the same position - sometimes 
      possible with WordDelimiterFilter in conjuncton with stemming. --> 
     <filter class="solr.RemoveDuplicatesTokenFilterFactory"/> 
     </analyzer> 
     </fieldType> 

포진 필터는 작동하지 않습니다.

+0

해당 facet 필드에서 사용중인 schema.xml에서 분석기를 게시 하시겠습니까? – cheffe

+0

@cheffe, 필수 필드에 사용하고있는 필드 유형의 분석기 비트를 확인하십시오. 내 질문에 편집으로 추가했습니다 – abhilashLenka

+0

unigrams를 사용하지 않으려면 왜'outputUnigrams = "true"'가 있습니까? – soulcheck

답변

2

문제는 분석기가 패싯 필드 단어를 색인에서 분리하고있는 것으로 보입니다. 잠재적으로 여러 단어가있는 입력란을 사용하려는 경우 단어를 분리하지 않는 분석기를 사용해야합니다. solr에서 "copy field"를 사용하여 색인 프로세스가 실제로 변경되지 않도록 할 수 있습니다. 예를 들면 아래와 같은 것을 가질 수 있습니다.

<field name="facet_text_en_nosplit" type="string" indexed="true" stored="false" multiValued="true"/>

사용하여면 쿼리 위 필드.

+0

공백 문자 토큰 화 도구를 사용하지 않을 것을 제안합니까? 어떤 다른 토크 나이저를 사용할 수 있습니까? 또한 많은 문서에서 그 사용법을 찾으려는 노력에도 불구하고 다중 가치가 어떻게 작동하는지 잘 모르겠습니다. 당신의 대답을 조금 더 서술적으로 만드는 것은 당신의 종류 일 것이고, 당신의 제안을 이해할 수는 없습니다. – abhilashLenka

+1

답장에서 편집을 수락 할 수 있습니까, 나는 그것에 근거하여 답변을 표시했습니다. – abhilashLenka

+0

여백 필드의 경우 공백을 사용하면 각 용어에 영향을 미칩니다. 어떤 경우에 유효하지 않을 수 있습니다. 'string' 분석기는 분석되지 않고 그대로 저장된'solr.StrField' 타입을 사용합니다. 양자 택일로'solr.KeywordTokenizerFactory'를 사용할 수도 있습니다. – Ganesh