Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
4.0, 4.1
-
None
Description
There seems to be a field order issue going on when setting a field to null with a partial update. I am running the nightly Solr 4.1.0.2013.01.11.08.23.02 build. Ran into this issue using the nightly build version of Solrj, including the null field fix from Solr-4133.
Null first, unique field second (this is what is being generated by Solrj)
curl 'http://localhost/solr/update?commit=true' -H 'Content-type:text/xml' -d '<add><doc boost="1.0"> <field name="timestamp" update="set" null="true"/><field name="id">test</field> </doc></add>'
<?xml version="1.0" encoding="UTF-8"?> <response> <lst name="responseHeader"><int name="status">400</int><int name="QTime">0</int></lst><lst name="error"><str name="msg">Document is missing mandatory uniqueKey field: id</str><int name="code">400</int></lst> </response>
id first, then null field
curl 'http://localhost/solr/update?commit=true' -H 'Content-type:text/xml' -d '<add><doc boost="1.0"> <field name="id">test</field> <field name="timestamp" update="set" null="true"/> </doc></add>'
<response> <lst name="responseHeader"><int name="status">0</int><int name="QTime">30</int></lst> </response>
Real value first, then id
curl 'http://localhost/solr/update?commit=true' -H 'Content-type:text/xml' -d '<add><doc boost="1.0"> <field name="timestamp" update="set">1970-01-01T00:00:00Z</field> <field name="id">test</field> </doc></add>'
<?xml version="1.0" encoding="UTF-8"?> <response> <lst name="responseHeader"><int name="status">0</int><int name="QTime">28</int></lst> </response>
Unfortunately it is doing this field ordering every atomic update request via Solrj I do now.