delete-by-query does not support purely negative queries
--------------------------------------------------------

                 Key: SOLR-381
                 URL: https://issues.apache.org/jira/browse/SOLR-381
             Project: Solr
          Issue Type: Bug
          Components: update
            Reporter: Erik Hatcher
            Priority: Minor


Reported by Rob Casson:

indexing the example docs from 1.2, these steps work:

curl http://localhost:8983/solr/update --data-binary
'<delete><query>solr</query></delete>' -H 'Content-type:text/xml;
charset=utf-8'

curl http://localhost:8983/solr/update --data-binary '<optimize />' -H
'Content-type:text/xml; charset=utf-8'

but if i reindex, and change the delete query to a negative, the
non-'solr' docs don't get deleted:

curl http://localhost:8983/solr/update --data-binary
'<delete><query>-solr</query></delete>' -H 'Content-type:text/xml;
charset=utf-8'

curl http://localhost:8983/solr/update --data-binary '<optimize />' -H
'Content-type:text/xml; charset=utf-8'

And detailed by Hoss with a workaround:
the delete by query does "the 
right thing" with a purely negative query ... when the customization was 
added to Solr to support pure negative queries it was done at the 
SolrIndexSearcher level when computing DocSets, but delete by query uses a 
lower level method passing in a HitCOllector.

the work arround is to include *:* in yoru query ...
   <delete><query>*:* -solr</query></delete>
... if/when this is fixed 
in Solr that's esentally what solr will do under the covers.


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to