Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java solr无法删除任何内容_Java_Solr_Solrj - Fatal编程技术网

Java solr无法删除任何内容

Java solr无法删除任何内容,java,solr,solrj,Java,Solr,Solrj,我正在尝试删除solr服务器上的文档,但它不起作用,并且没有收到任何错误 我尝试通过浏览器、curl和solrj删除,但没有任何效果 (此处解释的浏览器和卷曲:) 我的solrj代码是: server.deleteByQuery("*:*"); server.deleteById("*"); server.deleteById("guid:*"); server.commit(true, true); UpdateRequest update = new UpdateRequest(); up

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

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

(此处解释的浏览器和卷曲:)
我的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文件删除文档,但我仍然不知道为什么:

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

SolrServer solrServer;
String url = "http://localhost:8080/solr";
solrServer = new HttpSolrServer(url);
solrServer.deleteByQuery("*:*");
solrServer.commit();
我的Solr版本是3.6.1。

我找到了原因:

该领域:

<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.data.dir:}

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

4.0.0 alpha版,jetty 8上运行多核设置刚刚尝试了4.0.0 beta版,同样的问题是代码在示例文件夹中的默认设置上工作,但是,如果我添加自己的schema.xml文件,我就不能再删除任何内容,我也不知道我的schema.xml为什么有问题,或者有什么问题。当然,你的schema.xml和solrconfig.xml有问题。这个答案解决了我这方面的问题。然而,4.0.0-ALPHA和4.0.0-BETA中都有这一行:因此我认为人们只是认为删除这一行是没有必要的……答案很好,这也解决了我的问题
//Delete particular column using Solr

SolrServer solrServer;

solrServer = new HttpSolrServer(url);

solrServer.deleteByQuery("columnName:value");

solrServer.commit();