Solr 4 beta is out, the GA version will follow soon. Partial document updates has been around for a while as explained here: http://solr.pl/en/2012/07/09/solr-4-0-partial-documents-update/
However, I haven't figured out how to do it with solrj api.
Does anyone knows if it is possible with solrj? Or is solrj just not up-to-speed with this feature?
update: as I describe in the mailing list (see reply here), I found that in the solrj api, the value of a SolrInputField can be a map - it doesn't have to be a simple scalar value.
If it is a map, solrj adds an additional update
attribute to the field's xml element.
For example,
This code:
SolrInputDocument doc = new SolrInputDocument();
Map<String, String> partialUpdate = new HashMap<String, String>();
partialUpdate.put("set", "foo");
doc.addField("id", "test_123");
doc.addField("description", partialUpdate);
yields this document:
<doc boost="1.0">
<field name="id">test_123</field>
<field name="description" update="set">foo</field>
</doc>
In this example I used the word "set" for this additional attribute, but it doesn't work. Solr doesn't update the field as I expected. According to this link: http://solr.pl/en/2012/07/09/solr-4-0-partial-documents-update/ valid values are "set" and "add".
Any idea?
ArrayList
then thepartialUpdate
will be declared asMap<String, Object> partialUpdate = new HashMap<String, Object>();
and the key asadd
– Rockett