You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by Thomas Eckart <te...@gmx.de> on 2018/08/09 12:21:21 UTC

Atomic update deletes deduplication signature

Hello,

I am having trouble when doing atomic updates in combination with 
SignatureUpdateProcessorFactory (on Solr 7.2). Normal commits of new 
documents work as expected and generate a valid signature:

curl "$URL/update?commit=true" -H 'Content-type:application/json' -d 
'{"add":{"doc":{"id": "TEST_ID1", "description": "description", 
"country": "country"}}}' && curl "$URL/select?q=id:TEST_ID1"

"response":{"numFound":1,"start":0,"docs":[
{
    "id":"TEST_ID1",
    "description":["description"],
    "country":["country"],
    "_signature":"e577e465b9099ba8",  <-- valid signature
    "_version_":1608322850016460800}]
}}

However, when updating a field (that is not used for generating the 
signature) the signature is replaced by "0000000000000000":

curl "$URL/update?commit=true" -H 'Content-type:application/json' -d 
'{"add":{"doc":{"id": "TEST_ID1", "country": {"set": "country2"}}}}' && 
curl "$URL/select?q=id:TEST_ID1"

"response":{"numFound":1,"start":0,"docs":[
{
    "id":"TEST_ID1",
    "description":["description"],
    "country":["country2"],
    "_signature":"0000000000000000",  <-- broken signature
    "_version_":1608322857485467648}]
}}

This looks a lot like the second problem mentioned in an old Solr JIRA 
issue ([1]). Unfortunately, there is no relevant response in the 
discussion there.
Any ideas how to fix this?

Thank you,
Thomas


solrconfig.xml:
<updateRequestProcessorChain name="files-update-processor">
[...]
    <processor class="solr.processor.SignatureUpdateProcessorFactory">
       <bool name="enabled">true</bool>
       <str name="signatureField">_signature</str>
       <bool name="overwriteDupes">false</bool>
       <str name="fields">description</str>
       <str name="signatureClass">solr.processor.Lookup3Signature</str>
    </processor>
    <processor class="solr.LogUpdateProcessorFactory"/>
    <processor class="solr.RunUpdateProcessorFactory"/>
</updateRequestProcessorChain>


[1] https://issues.apache.org/jira/browse/SOLR-4016