Jak utworzyć niewrażliwą na wielkość liter kopię pola tekstowego w SOLR?
Jak mogę utworzyć kopię pola tekstowego w formie bez rozróżniania wielkości liter? Chcę użyć typowego typu „string” i typu bez rozróżniania wielkości liter. Typy są zdefiniowane w ten sposób:
<fieldType name="string" class="solr.StrField"
sortMissingLast="true" omitNorms="true" />
<!-- A Case insensitive version of string type -->
<fieldType name="string_ci" class="solr.StrField"
sortMissingLast="true" omitNorms="true">
<analyzer type="index">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory" />
</analyzer>
<analyzer type="query">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory" />
</analyzer>
</fieldType>
I przykład takiego pola:
<field name="destANYStr" type="string" indexed="true" stored="true"
multiValued="true" />
<!-- Case insensitive version -->
<field name="destANYStrCI" type="string_ci" indexed="true" stored="false"
multiValued="true" />
Próbowałem użyć CopyField tak:
<copyField source="destANYStr" dest="destANYStrCI" />
Ale najwyraźniej CopyField jest wywoływany na źródle i dest, zanim zostaną wywołane jakiekolwiek analizatory, więc nawet jeśli określiłem, że dest nie uwzględnia wielkości liter w anaylyzerach, przypadek wartości skopiowanych z pola źródłowego zostaje zachowany.
Mam nadzieję uniknąć ponownego przesłania wartości w polu przez klienta w czasie tworzenia rekordu.