Solr删除由于某种原因无法正常工作
Posted
技术标签:
【中文标题】Solr删除由于某种原因无法正常工作【英文标题】:Solr delete not working for some reason 【发布时间】:2011-01-22 10:37:15 【问题描述】:只是想删除所有文件,然后这样做:
http://localhost:8983/solr/update?stream.body=%3Cdelete%3E%3Cquery%3E*:*%3C/query%3E%3C/delete%3E
然后提交:
http://localhost:8983/solr/update?stream.body=%3Ccommit/%3E
我得到了回应:
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">17</int>
</lst>
</response>
但是当我搜索时,我仍然会得到结果。
我做错了什么?
【问题讨论】:
solr 日志在哪里,我没找到!我在码头上跑步。 没关系,如果您有响应,则没有错误。你的客户平台是什么?如果是 Java,您可以只使用 SolrJ,还是有什么特殊原因您不使用它? 查询*:*
会得到什么文档?
如果有人想知道,这里是关于如何从 URL 中进行此类删除的 SOLR 文档:wiki.apache.org/solr/UpdateXmlMessages
对我来说这没有帮助,但请务必检查链接问题:***.com/questions/12057734/…
【参考方案1】:
不确定是否重要,但您也可以对 : 进行编码
http://localhost:8983/solr/update?stream.body=%3Cdelete%3E%3Cquery%3E*%3A*%3C%2Fquery%3E%3C%2Fdelete%3E
要尝试的另一件事是使用 POST 方法(调用更新的首选方法):
curl http://localhost:8983/solr/update?commit=true -H "Content-Type: text/xml" --data-binary '<delete><query>*:*</query></delete>'
【讨论】:
然后我运行了一个单独的 'code'(localhost:8983/solr/update?stream.body=<commit />) 命令。非常感谢【参考方案2】:在 Lucene 维基中:
它仍然会被找到,因为索引 更改是不可见的,直到,并且 新的搜索器打开。造成这种 发生,发送一个提交命令到 Solr(post.jar 通过 默认)
也许您可以向 Solr 发布 <commit/>
消息。
【讨论】:
【参考方案3】:将 commit=true 参数放入您的 GET 请求中:
http://localhost:8983/solr/update?stream.body=%3Cdelete%3E%3Cquery%3E*:*%3C/query%3E%3C/delete%3E&commit=true
【讨论】:
【参考方案4】:记得清除浏览器缓存!我以为我遇到了同样的问题,但事实证明浏览器刚刚缓存了结果并返回了缓存的页面。哦!
【讨论】:
【参考方案5】:http://localhost:8983/solr/update?stream.body=<delete><query>*:*</query></delete>&commit=true
【讨论】:
【参考方案6】:您可能在更新之后和问号之前缺少正斜杠 (/
)。
当前查询:
http://localhost:8983/solr/update?stream.body=<delete><query>*:*</query></delete>&commit=true
修改后的查询:
http://localhost:8983/solr/update/?stream.body=<delete><query>*:*</query></delete>&commit=true
【讨论】:
【参考方案7】:我最近也被这个刺痛了。请记住,如果你在 solrconfig.xml 中配置了 updateLog,但 schema.xml 中没有 version 字段
见https://issues.apache.org/jira/browse/SOLR-3432
我在这个上花了一个小时!!!
【讨论】:
很棒的评论。这正是我的问题。以上是关于Solr删除由于某种原因无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章