使用solr java api删除索引文档
Delete index document using solr java api
所以我在这里使用 solr
来索引文档。
现在这是我的一小部分代码:
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, sendto=receiver@gmial123.com, frommail=sender@gmail123.com, posteddate=Tue Oct 27 13:26:57 IST 2015}]
See my id SolrDocument[{contid=F92F9D8BBD65F36365257EEB0040DEFE, cmrights=[dummy, dummy1, dummy2], dbtype=MAIL, subject=NotesSlrWriter123, sendto=receiver@gmial123.com, frommail=sender@gmail123.com, posteddate=Tue Oct 27 17:18:33 IST 2015}]
before delete::2
after delete::2
所以这里我要做的是获取数据库,然后 NotesSolrWrite
用于索引我的笔记文档并保存在服务器上,所以在 res
中,正如预期的那样,有两个这样的文档满足查询条件和 count.size
给出了被选中的文档数量,我正在打印计数值。
所以我现在的问题是我想从服务器上删除这个文档
但我不知道我是否做对了,删除代码后我仍然在服务器上获取这些文档。如何以其他方式删除它??
如果有人帮助我就好了
我找到了解决方案。我使用
删除了文档
FTIserver.deleteByQuery("dontKnow1");"
所以我在这里使用 solr
来索引文档。
现在这是我的一小部分代码:
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, sendto=receiver@gmial123.com, frommail=sender@gmail123.com, posteddate=Tue Oct 27 13:26:57 IST 2015}]
See my id SolrDocument[{contid=F92F9D8BBD65F36365257EEB0040DEFE, cmrights=[dummy, dummy1, dummy2], dbtype=MAIL, subject=NotesSlrWriter123, sendto=receiver@gmial123.com, frommail=sender@gmail123.com, posteddate=Tue Oct 27 17:18:33 IST 2015}]
before delete::2
after delete::2
所以这里我要做的是获取数据库,然后 NotesSolrWrite
用于索引我的笔记文档并保存在服务器上,所以在 res
中,正如预期的那样,有两个这样的文档满足查询条件和 count.size
给出了被选中的文档数量,我正在打印计数值。
所以我现在的问题是我想从服务器上删除这个文档
但我不知道我是否做对了,删除代码后我仍然在服务器上获取这些文档。如何以其他方式删除它??
如果有人帮助我就好了
我找到了解决方案。我使用
删除了文档FTIserver.deleteByQuery("dontKnow1");"