使用solr java api删除索引文档

时间:2015-10-28 07:52:23

标签: java solr lotus-domino solrj

所以我在这里使用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给出了所选文档的数量,我打印的是count的值。

所以我的问题是现在我想从服务器中删除这些文件

但我不知道我是否做得对,在我删除代码之后仍然在服务器上获取这些文件。如何删除任何其他方式??

如果有人帮助我会很好

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。我使用

删除了文档
FTIserver.deleteByQuery("dontKnow1");"