2

我正在尝试删除我的 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 文件删除文档,但我仍然不知道为什么: pastebin 上的 schema.xml

4

3 回答 3

7

我找到了原因: 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 文件的每个人身上。

于 2012-08-23T10:15:45.343 回答
3

我有一个这样的工作代码:

SolrServer solrServer;
String url = "http://localhost:8080/solr";
solrServer = new HttpSolrServer(url);
solrServer.deleteByQuery("*:*");
solrServer.commit();

我的 Solr 版本是 3.6.1。

于 2012-08-22T13:40:01.860 回答
0
//Delete particular column using Solr

SolrServer solrServer;

solrServer = new HttpSolrServer(url);

solrServer.deleteByQuery("columnName:value");

solrServer.commit();
于 2014-10-16T12:35:16.993 回答