SpringBoot+Lucene第六篇 — 索引的增删改查

为了减少代码量,写一个公用的增删改公用的获取IndexWriter对象的方法

/**
 * 增删改公用的获取IndexWriter对象
 * @return
 * @throws Exception
 */
public IndexWriter getIndexWriter() throws Exception{
    //获得索引存放的位置
    Directory directory = FSDirectory.open(new File("./index"));
    //获得分词器
    Analyzer analyzer = new IKAnalyzer();
    //获得IndexWriterConfig对象
    IndexWriterConfig indexWriterConfig = new IndexWriterConfig(Version.LUCENE_4_10_2, analyzer);
    //获得indexWeiter对象
    IndexWriter indexWriter = new IndexWriter(directory, indexWriterConfig);
    return indexWriter;
}

删除,修改索引

/**
 * 删除索引——全部删除
 * @throws Exception
 */
@Test
public  void deleteAll() throws  Exception{
    //获得indexWeiter对象
    IndexWriter indexWriter = this.getIndexWriter();
    //删除所有的索引
    indexWriter.deleteAll();
    indexWriter.close();
}

/**
 * 删除索引-按条件删除
 */
@Test
public void delete() throws Exception{
    //获得indexWeiter对象
    IndexWriter indexWriter = this.getIndexWriter();

    Term t = new Term("fileName", "全文");
    TermQuery query = new TermQuery(t);
    //删除指定条件
    indexWriter.deleteDocuments(query);
    indexWriter.close();
}

/**
 * 更新索引
 * @throws Exception
 */
@Test
public void update() throws  Exception{
    //获得indexWeiter对象
    IndexWriter indexWriter = this.getIndexWriter();
    Document document = new Document();
    document.add(new TextField("fileN", "测试文件名", Field.Store.YES));
    document.add(new TextField("fileC", "测试文件内容", Field.Store.YES));

    indexWriter.updateDocument(new Term("fileName", "全文"), document, new IKAnalyzer());
    indexWriter.close();
}
上一篇 SpringBoot+Lucene第五篇 — 创建索引 — 域的再学习
下一篇 Lucene实现全文检索技术(包含SpringBoot整合Lucene 7.6.0)
目录
文章列表
1 Activity的重建(recreate)与恢复
Activity的重建(recreate)与恢复
2
Android内容被底部虚拟导航栏遮挡解决
Android内容被底部虚拟导航栏遮挡解决
3
Java volatile详解
Java volatile详解
4
CentOS下源码安装OpenSSL
CentOS下源码安装OpenSSL
5
调用System.gc()会发生什么?
调用System.gc()会发生什么?
最新评论
一位WordPress评论者
一位WordPress评论者
2月12日
您好,这是一条评论。若需要审核、编辑或删除评论,请访问仪表盘的评论界面。评论者头像来自 Gravatar。