1
所以我在這裏使用solr
作爲索引文件。使用solr java api刪除索引文件
現在這裏是我的小部分代碼:
db = cmd.start();
new NotesSolrWriter(db, null);
SolrHelper slrHelp = new SolrHelper();
QueryResponse res = slrHelp.queryResults("dontKnow1 ", null);
SolrDocumentList ids = res.getResults();
count = ids.size();
System.out.println(count);
boolean getServer = getServer();
if (getServer) {
for (SolrDocument id : ids) {
System.out.println("See my id " + id.toString());
FTIserver.deleteById(id.toString());
FTIserver.commit();
// FTIserver.commit(true, true);
}
}
QueryResponse res1 = slrHelp.queryResults("dontKnow1 ", null);
SolrDocumentList ids1 = res1.getResults();
int count1 = ids1.size();
System.out.println("before delete::" + count);
System.out.println("after delete::" + count1);
輸出:
See my id SolrDocument[{contid=3BAC9EE84691380265257EEB002BAA77, cmrights=[dummy, dummy1, dummy2], dbtype=MAIL, subject=NotesSlrWriter123, [email protected], [email protected], posteddate=Tue Oct 27 13:26:57 IST 2015}]
See my id SolrDocument[{contid=F92F9D8BBD65F36365257EEB0040DEFE, cmrights=[dummy, dummy1, dummy2], dbtype=MAIL, subject=NotesSlrWriter123, [email protected], [email protected], posteddate=Tue Oct 27 17:18:33 IST 2015}]
before delete::2
after delete::2
所以在這裏我所試圖做的是讓數據庫然後NotesSolrWrite
使用了索引我的筆記文檔,保存在服務器上,所以在res
如預期的那樣有兩個這樣的文件滿足查詢條件並且count.size
給出了被選擇的文件的數量,並且我是printi ng count的值。
所以我的問題是,現在我要刪除從服務器
這個文件,但我不知道我是否做對了,經過我刪除代碼仍然我得到的服務器的文檔。如何刪除任何其他方式?
這將是很好,如果有人幫我
我的猜測是您使用此方法只[deleteById](https://lucene.apache.org/solr/5_0_0/solr-solrj/org/apache/solr/client/刪除文件solrj/SolrClient.html#deleteById%28java.lang.String%29)。這會返回一個'UpdateResponse'響應。請檢查solr返回的狀態代碼。我不確定'FTIserver'是什麼。 – YoungHobbit
私人SolrServer FTIserver; FTI solr服務器,我聲明在代碼的頂部抱歉不解釋! –
您是否檢查過響應碼? – YoungHobbit