zoukankan      html  css  js  c++  java
  • Lucene 索引维护

    1.修改索引

      更新索引是先删除再添加,建议对更新需求采用此方法,并且要保证对已存在的索引执行更新,可以先查询出来,确定更新记录存在执行更新操作。
      如果更新索引的目标文档对象不存在,则执行添加。

    /**
         * 修改索引库
         */
        @Test
        public void testUpdateIndex() throws IOException {
    
            // 创建分析器(分词器) StandardAnalyzer标准分词器,对英文分词效果好,对中文是单字分词
            Analyzer analyzer = new StandardAnalyzer();
            // 创建IndexWriterConfig配置信息类,指定切分词使用的分词器
            IndexWriterConfig config = new IndexWriterConfig(analyzer);
            // 创建Directory对象,声明索引库存储位置
            Directory dir = FSDirectory.open(Paths.get("D:\lucene"));
            // 创建IndexWriter写入对象,指定写入的位置和使用的config初始化对象
            IndexWriter indexWriter = new IndexWriter(dir, config);
    
            // 需要变更的内容
            Document document = new Document();
    
            // 创建域对象,并且放入文档对象中
            document.add(new StringField("id", "100000003140", TextField.Store.YES));
            document.add(new TextField("name", "vivo", TextField.Store.YES));
    
            // 执行更新,会把所有符合条件的Document先删除,再新增。
            indexWriter.updateDocument(new Term("id", "100000003140"), document);
            // 释放资源
            indexWriter.close();
        }

    2.删除索引

    /**
     * 删除索引库
     */
    @Test
    public void testDeleteIndex() throws IOException {
    
        // 创建分析器(分词器) StandardAnalyzer标准分词器,对英文分词效果好,对中文是单字分词
        Analyzer analyzer = new StandardAnalyzer();
        // 创建IndexWriterConfig配置信息类,指定切分词使用的分词器
        IndexWriterConfig config = new IndexWriterConfig(analyzer);
        // 创建Directory对象,声明索引库存储位置
        Directory dir = FSDirectory.open(Paths.get("D:\lucene"));
        // 创建IndexWriter写入对象,指定写入的位置和使用的config初始化对象
        IndexWriter indexWriter = new IndexWriter(dir, config);
    
        // 根据Term删除索引库
        // indexWriter.deleteDocuments(new Term("id", "100000003140"));
        // 删除全部索引(慎用)
        indexWriter.deleteAll();
    
        // 释放资源
        indexWriter.close();
    }
  • 相关阅读:
    vue分页组件(二)
    ES6里let、const、var区别总结
    electron-vue项目打包踩坑记录
    node环境变量配置
    第一次把本地项目与git相连
    java项目环境搭建
    npm上发布vue插件
    HTML5日期时间输入类型注意事项(time,date)
    vue 分页组件
    vue里ref ($refs)用法
  • 原文地址:https://www.cnblogs.com/roadlandscape/p/12547655.html
Copyright © 2011-2022 走看看