표음과 일치하는 결과가 일반 검색보다 덜 가중되도록 색인을 설정하고 싶습니다.Sunspot (Solr)에서 다른 필드 유형의 다른 필드 색인 생성
이렇게하려면, 나는 텍스트 내의 schema.xml에서 두 개의 서로 다른 fieldType 세트를 만들었습니다
<fieldType name="text" class="solr.TextField" omitNorms="false">
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.ISOLatin1AccentFilterFactory"/>
<filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="false"/>
</analyzer>
</fieldType>
<fieldType name="text_phonetic" class="solr.TextField" omitNorms="false">
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.ISOLatin1AccentFilterFactory"/>
<filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="false"/>
<filter class="solr.PhoneticFilterFactory" encoder="DoubleMetaphone" inject="true"/>
</analyzer>
</fieldType>
과 음성 공장에서 사용하는 dynamcicField 만들어 : 지금
<dynamicField name="*_phonetic" stored="false" type="text_phonetic" multiValued="true" indexed="true"/>
을 내 모델은 다음과 같이 할 수 있습니다.
text :name, :as => :name_phonetic
그리고 잘 작동합니다.
제 질문은 음성 텍스트와 함께 일반 텍스트 필드 색인을 사용하는 필드를 여러 개 설정하는 가장 좋은 방법은 무엇입니까? 내 모델의 모든 인덱싱 라인을 복제 할 수는 있지만 구성을 사용하여 스키마에서 직접이 작업을 수행 할 수있는 방법이 있으며 흑점 전체 텍스트 쿼리에서 사용할 수 있습니까?
좋아요, 실제로 이것은 가장 좋은 방법입니다. 의견 주셔서 감사합니다. – spike