Hello,

I'm using Solr 4.x. In my solr schema I have the following fields defined :

<field name="content" type="text_general" indexed="false" stored="true" multiValued="true" /> <field name="all" type="text_general" indexed="true" stored="false" multiValued="true" termVectors="true" /> <field name="eng" type="text_en" indexed="true" stored="false" multiValued="true" termVectors="true" /> <field name="ita" type="text_it" indexed="true" stored="false" multiValued="true" termVectors="true" /> <field name="fre" type="text_fr" indexed="true" stored="false" multiValued="true" termVectors="true" />
      ...
        <copyField source="content" dest="all"/>

To fill in the language specific fields, I use a custom update processor chain, with a custom ConditionalCopyProcessor that copies "content" field into appropriate language field, depending on document language (as explained in http://wiki.apache.org/solr/UpdateRequestProcessor).

Problem is this custom chain is applied on update request document, thus it works all right when inserting a new document, or updating the whole document, but I lose language specific fields when I do a partial update (as those fields are not stored, and as the request document contains only updated fields).

I would avoid to set language specific fields to stored="true", as "content" field may hold big values.

Is there a way to have solr execute my ConditionalCopyProcessor on the actual updated doc (the one resulting from solr retrieving all stored values and merging with update request values), and not on the request doc ?

Thank a lot for your help.

P. Lecuyer

.

Reply via email to