• 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();
        }
    }
    
  • 相关阅读:
    [安全相关]SQL注入
    [android] service基础
    [android] activity基础
    [javascript] 基础积累
    [CSS] 常用积累
    html & css
    时序图和活动图
    分析图书馆管理系统的5W1H
    风险分析
    PM案例分析(团队作业第三组)
  • 原文地址:https://www.cnblogs.com/lixingwu/p/13870595.html
Copyright © 2020-2023  润新知