Comment créer un casse copie d'un champ de type chaîne dans SOLR?

Comment puis-je créer une copie d'une chaîne de caractères en cas insensible forme? Je veux utiliser le type "chaîne de caractères" type et un casse type. Les types sont définis comme suit:

    <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> 

Et un exemple de champ comme suit:

<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" />

J'ai essayé d'utiliser CopyField comme suit:

<copyField source="destANYStr" dest="destANYStrCI" />

Mais, apparemment CopyField est appelée sur la source et la destination avant tout des analyseurs sont invoquées, de sorte que même si j'ai précisé que dest est pas sensible à la casse grâce à anaylyzers le cas des valeurs copiées à partir de la source de champ sont conservés.

Je suis l'espoir d'éviter de re-transmission de la valeur dans le champ de la part du client, à un moment de la création.

InformationsquelleAutor harschware | 2010-01-12