Java solr无法删除任何内容
我正在尝试删除solr服务器上的文档,但它不起作用,并且没有收到任何错误 我尝试通过浏览器、curl和solrj删除,但没有任何效果 (此处解释的浏览器和卷曲:)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
我的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();