Come posso creare una copia di un campo stringa in caso di forma non sensibile? Voglio usare il tipico tipo "stringa" e un tipo maiuscole e minuscole. I tipi sono definiti in questo modo:Come creare una copia senza distinzione tra maiuscole e minuscole di un campo stringa in SOLR?
<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>
e un esempio del campo in questo modo:
<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" />
Ho provato ad utilizzare CopyField in questo modo:
<copyField source="destANYStr" dest="destANYStrCI" />
Ma, a quanto pare CopyField si chiama su source e dest prima che vengano invocati tutti gli analizzatori, quindi anche se ho specificato che dest non fa distinzione tra maiuscole e minuscole tramite anaylyzers, il caso dei valori copiati dal campo sorgente viene mantenuto.
Spero di evitare di ritrasmettere il valore sul campo dal client, al momento della creazione del record.
Buona risposta. Soprattutto omitNorms è utile, per risparmiare memoria. –