java - solr 不能删除任何东西

标签 java solr solrj

我正在尝试删除我的 solr 服务器上的文档,但它不起作用而且我没有收到任何错误。

我尝试通过浏览器、curl 和 solrj 删除,但没有任何效果。

(此处解释的浏览器和 curl:Solr delete not working for some reason)
我的 solrj 代码是:

server.deleteByQuery("*:*");
server.deleteById("*");
server.deleteById("guid:*");
server.commit(true, true);

UpdateRequest update = new UpdateRequest();
update.deleteByQuery("*:*");
update.setCommitWithin(0);
server.request(update);
server.commit(true, true);

SolrQuery query = new SolrQuery("*:*");//Search for everything/anything
query.setRows(10);
query.setRequestHandler("/query");
QueryResponse qr = server.query(query); 
SolrDocumentList result = qr.getResults();
for (SolrDocument doc : result) {
    Object id = doc.get("link");
    String names = (String) doc.get("description");
System.out.println(id + " " + names);
}

我总是在执行此操作后或通过 Web 界面获得结果,没有任何变化(顺便添加文档)。

任何人都知道我可以尝试什么或者这可能是什么原因?

更新:

所以我再次尝试从头开始设置所有内容,并定位了错误源:solr 不删除包含我的 Schema.xml 文件的文档,但我仍然不知道为什么: schema.xml on pastebin

最佳答案

我找到了原因: bug in solr 4.0.0 alpha

领域:

<field name="_version_" type="long" indexed="true" stored="true"/>

如果您在 solrconfig.xml 中启用更新日志,则需要在您的 schema.xml 文件中删除,如果您没有此字段,您的删除更新查询将被忽略。

<updateHandler class="solr.DirectUpdateHandler2">
  <updateLog>
    <str name="dir">${solr.data.dir:}</str>
  </updateLog>
</updateHandler>

每个使用 solr 示例中的配置并仅更改 Schema.xml 文件的人都会遇到这种情况。

关于java - solr 不能删除任何东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12057734/

相关文章:

java - 无法将 jmx 连接到远程主机上 docker 中运行的 java 应用程序

java - Solrj Hello World -/solr/update 未找到

java - java solr 中 getElapsedTime() 和 getQTime() 的区别

solr - 如何访问 Apache Solr 的 Velocity 搜索 UI

java - 使用 SolrJ 删除整个索引

查询字符串参数的 Java URL 编码

java - 如何从java中的<dc>标签中提取数据?

java - 弗林克 : is it losing records?

java - 在 Schema less solr 中存储 Java 对象

elasticsearch - 富文本文件的本地索引