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
.