zoukankan      html  css  js  c++  java
  • 6.Lucene删除索引

    在我们删除数据时,我们也应该同时把lucene中的数据删掉。

    在lucene中删除也比较简单,我们只要调用deleteDocuments即可删除。

    indexWriter.deleteDocuments(term);
    

    附录:完整代码

    @Test
    public void deleteIndex() {
        // lucene索引目录位置
        String indexDir = "E:\develop\demo\lucene-learn\lucene-index";
        File luceneIndexDirectory = new File(indexDir);
        try (Directory directory = MMapDirectory.open(luceneIndexDirectory.toPath())) {
            // 创建索引写入
            IndexWriterConfig indexWriterConfig = new IndexWriterConfig(new IKAnalyzer());
            indexWriterConfig.setOpenMode(IndexWriterConfig.OpenMode.CREATE_OR_APPEND);
            // 设置缓存区大小,每n个文档写入一次
            indexWriterConfig.setMaxBufferedDocs(1000);
            IndexWriter writer = new IndexWriter(directory, indexWriterConfig);
            // 设置每个segments保存几个文档,该值越大创建索引时间越小,对应的搜索会变慢
            writer.forceMerge(100);
            // 删除文档
            writer.deleteDocuments(new Term("id", "1"));
            // 提交保存索引
            writer.flush();
            writer.commit();
            writer.close();
        } catch (IOException e) {
            System.err.println(String.format("打开索引目录%s失败", indexDir));
            e.printStackTrace();
        }
    }
    
  • 相关阅读:
    寻找两个有序数组的中位数
    JAVA设计模式(组合模式)
    excel 操作
    研究生英语-春
    cvs
    Spring课程安排
    Spring的事务管理
    在WEB项目中集成Spring
    计算机网络参考模型
    揭开5G神秘面纱
  • 原文地址:https://www.cnblogs.com/lixingwu/p/13870595.html
Copyright © 2011-2022 走看看