Lucene索引庫的增刪改

Lucene的索引庫的維護分為四個部分,增刪改查,這里就先只講增刪改,查會在下一篇文章單獨拎出來講。

1.添加文檔

2.刪除文檔
1) 刪除全部
2) 根據(jù)查詢、關鍵詞刪除文檔

3.修改文檔
修改的原理時先刪除后添加

代碼如下:

package com.itheima;

import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.document.StoredField;
import org.apache.lucene.document.TextField;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.index.Term;
import org.apache.lucene.queryparser.classic.ParseException;
import org.apache.lucene.store.FSDirectory;
import org.junit.Before;
import org.junit.Test;
import org.wltea.analyzer.lucene.IKAnalyzer;

import java.io.File;
import java.io.IOException;

/**
 * @ClassName luceneFive
 * @Description TODO
 * @Author gkz
 * @Date 2019/8/23 16:59
 * @Version 1.0
 **/
public class luceneFive {

    private  IndexWriter indexWriter;


    @Before()
    public void initIndexWriter() throws IOException {

        //創(chuàng)建一個IndexWriter對象,需要使用IKAnalyzer作為分析器
        indexWriter=
                new IndexWriter(FSDirectory.open(new File("E:\\Desktop").toPath()),
                        new IndexWriterConfig(new IKAnalyzer()));
    }

    @Test
    public void addDocument() throws ParseException, IOException {
        //創(chuàng)建一個Document對象
        Document document=new Document();
        //向document對象中添加域
        document.add(new TextField("name","新添加的文件", Field.Store.YES));
        document.add(new TextField("context","新添加的文件內(nèi)容", Field.Store.NO));
        document.add(new StoredField("path","E:\\Desktop\\lucenetest"));
        //把文檔對象寫入索引庫
        indexWriter.addDocument(document);
        //關閉索引庫
        indexWriter.close();

    }


    @Test
    public void deleteAllDocument() throws IOException {
       //刪除所有文檔
        indexWriter.deleteAll();
        indexWriter.close();
    }


    @Test
    public void deleteDocumentByQuery() throws IOException {
        //刪除name域帶apache的所有的文檔
        indexWriter.deleteDocuments(new Term("name","apache"));
        indexWriter.close();
    }

    @Test
    public void updateDocument() throws IOException {
        //創(chuàng)建一個新的文檔對象
        Document document=new Document();
        document.add(new TextField("name","更新之后的文檔", Field.Store.YES));
        document.add(new TextField("name1","更新之后的文檔2", Field.Store.YES));
        document.add(new TextField("name2","更新之后的文檔3", Field.Store.YES));
        indexWriter.updateDocument(new Term("name2","spring"),document);
        //關閉索引庫
        indexWriter.close();
    }
}
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 1.Lucene簡介 Lucene是apache下的一個開源的全文檢索引擎工具包。 1.1.全文檢索(Full-t...
    唯死撐爾閱讀 594評論 0 0
  • Lucene是一個開放源代碼的全文檢索引擎工具包,它提供了完整的查詢引擎和索引引擎,開發(fā)人員可以方便的在目標系統(tǒng)中...
    _時間海閱讀 318評論 0 0
  • 原文鏈接:http://www.chedong.com/tech/lucene.htmlLucene是一個基于Ja...
    流河閱讀 737評論 0 3
  • 認識你,是我前世在佛祖面前修來的緣; 失去你,是我倆今身的的份不足夠; 既是有緣,我們就應該好好的珍惜; 既然無份...
    小面包跳跳閱讀 548評論 0 0
  • 看白夜行時男女主被逼著一步一步做了很多錯事,當時就想起文秀說過的“這個世界不是非黑即白,更多的是灰色地帶”。但是所...
    私奔的海閱讀 284評論 2 0

友情鏈接更多精彩內(nèi)容