여러 필드가있는 Solr 문서가 있다고 가정합니다. 이제 몇 가지 구체적인 이유 때문에 필드 유형 중 하나를 수정해야합니다. 해당 필드의 "유형"을 수정 한 후에 해당 필드를 쿼리 할 수 없다는 것을 알고 있습니다. 다른 필드로 쿼리 할 수 있습니까?Solr. schema.xml에서 필드 유형 중 하나 수정하기
내 필드 정의는
<field name="searchtag" type="text_general" indexed="true" stored="true"/>
새로운 정의는
<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
<!-- in this example, we will only use synonyms at query time
<filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>
-->
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
<fieldType name="text_ngram" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.NGramFilterFactory" minGramSize="3" maxGramSize="15"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
감사
안녕하세요 buddy86, 다음과 같은 내용을 쓸 때 더 잘 설명해 주실 수 있습니까? "다른 필드로도 쿼리 할 수 있습니까?" ? 서로 다른 두 필드에서 데이터를 인덱싱 할 수 있습니다. 아마도 필드로 인덱싱하고 다른 유형의 복사 필드를 설정할 수 있습니다. – Dany
"기타 필드"는 특정 Solr 문서에있는 ** searchtag **를 제외한 필드를 의미합니다. 솔, 솔라 문서에 10 개의 다른 필드가 있습니다. 그 중 하나는 "검색 태그"입니다. 그래서 id와 searchtag를 제외한 다른 8 개의 필드에 대해서 말하고 있습니다. 희망, 지금은 분명합니다. – buddy86