Uploaded image for project: 'Solr'
  1. Solr
  2. SOLR-4297

Atomic update including set null=true throws uniqueKey error depending on order

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 4.0, 4.1
    • 4.3, 6.0
    • clients - java, update
    • 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.

      Attachments

        1. SOLR-4297.patch
          2 kB
          Shalin Shekhar Mangar

        Activity

          People

            shalin Shalin Shekhar Mangar
            bbpennel Ben Pennell
            Votes:
            2 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: