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 the document passed to the update
request, thus it works all right when inserting a new document or updating
the whole document, where all fields are provided, but it does not when
passed document holds only updated fields (as language-specific fields are
not stored).

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.

Paule



--
View this message in context: 
http://lucene.472066.n3.nabble.com/Solr-4-x-how-to-implement-an-update-processor-chain-working-for-partial-updates-tp4103071.html
Sent from the Solr - User mailing list archive at Nabble.com.

Reply via email to