Reputation: 548
Everytime i run a delete query in Apache Solr
i.e http://localhost:8983/solr/update?stream.body=<delete><query>id:APP 5.6.2*</query></delete>&commit=true
<response> <lst name="responseHeader"><int name="status">0</int><int name="QTime">61</int></lst></response>
I get the above response and when i query my index to see if the document with that id has been deleted and it would still be able to query the doc that i deleted.
I am wondering what is the surest way to know that a document has been deleted from a solr index ? How long does it take see if it got deleted ?
I don't trust the Solr Reponse as surest way of knowing the delete query did what it was meant to do.
Upvotes: 3
Views: 4358
Reputation: 548
Figured out the answer to the Qn, i posted "id:APP 5.6.2*"
Solr does not interpret blank space so you need to escape them so when i did id:APP\ 5.6.2* it worked.
Also the Response xml you get is no practical indication of the success of the query.
It just means that the HTTP request has been received and in response you get the xml that i posted in the qn.
What happened was when i gave id:APP 5.6.2* => this got interpreted as id:APP and it did not find a document with id as APP so the document that you want to be deleted didnt get deleted.
so the query should be
http://localhost:8983/solr/update?stream.body=<delete><query>id:APP\ 5.6.2*</query></delete>&commit=true
Upvotes: 3
Reputation: 22555
You need to move the delete query parameter up in your Url. I suspect that it is getting lost after the query parameter. Try the following:
http://localhost:8983/solr/update?commit=true&stream.body=<delete><query>id:APP 5.6.2*</query></delete>
Upvotes: 1