I cannot seem to get delete by query working in my simple setup in Solr 4.0 beta.
I have a single collection and I want to delete old documents from it. There is a single solr node in the config (no replication, not distributed). This is something that I previously did in Solr 3.x My collection is called dine, so I do: curl "http://localhost:8080/solr/dine/update" -s -H 'Content-type:text/xml; charset=utf-8' -d "<delete><query>timestamp_dt:[2012-09-01T00:00:00Z TO 2012-09-27T00:00:00Z]</query></delete>" and then a commit. The problem is that the documents are not delete. When I run the same query in the admin page, it still returns documents. I walked through the code and find the code in DistributedUpdateProcessor::doDeleteByQuery to be suspicious. Specifically, vinfo is not null, but I have no version field, so versionsStored is false. So it gets to line 786, which looks like: if (versionsStored) { That then skips to line 813 (the finally clause) skipping all calls to doLocalDelete Now, I do confess I don't understand exactly how this code should work. However, in the add code, the check for versionsStored does not skip the call to doLocalAdd. Any suggestions would be welcome. Andrew