每次我在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>
我得到了上述响应,当我查询我的索引以查看具有该id的文档是否已被删除并且它仍然能够查询我删除的文档。
我想知道什么是最可靠的方法来知道文件已从solr索引中删除?如果它被删除需要多长时间?
我不相信Solr Reponse是确定删除查询的最佳方式。
答案 0 :(得分:3)
找出Qn的答案,我发布了“id:APP 5.6.2 *”
Solr不解释空格,所以你需要将它们转义,所以当我输入id:APP \ 5.6.2 *它有效。
您获得的Response xml也没有实际指示查询是否成功。
这只是意味着已收到HTTP请求,作为响应,您将获得我在qn中发布的xml。
当我给id时发生了什么:APP 5.6.2 * =&gt;这被解释为id:APP并且它没有找到id为APP的文档,因此您要删除的文档没有被删除。
所以查询应该是
http://localhost:8983/solr/update?stream.body=<delete><query>id:APP\ 5.6.2*</query></delete>&commit=true
答案 1 :(得分:1)
您需要在您的网址中移动删除查询参数。我怀疑它在查询参数后丢失了。请尝试以下方法:
http://localhost:8983/solr/update?commit=true&stream.body=<delete><query>id:APP 5.6.2*</query></delete>