Lucene学习篇之修改/删除索引

前言:

本案例所引用的jar以及搜索的文档内容均在https://blog.csdn.net/qq_15076569/article/details/83031572基础之上进行

修改示例:


import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.document.StringField;
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.store.FSDirectory;
import org.apache.lucene.util.Version;
import org.wltea.analyzer.lucene.IKAnalyzer;

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

/**
 * 索引修改
 */
public class LunceneUpdate {

    public static void main(String[] args) throws IOException {
        /**
         * 更新索引本质是先根据条件查询索引在删除索引,再创建索引
         */
        FSDirectory fsDirectory = FSDirectory.open(new File("E://test"));
        IndexWriterConfig indexWriterConfig = new IndexWriterConfig(Version.LATEST, new IKAnalyzer());
        IndexWriter indexWriter = new IndexWriter(fsDirectory, indexWriterConfig);
        Document document = new Document();
        document.add(new StringField("id","112", Field.Store.YES));
        document.add(new TextField("content", "随便写的枸杞日志内容软件", Field.Store.YES));
        //执行更新
        indexWriter.updateDocument(new Term("id","112"),document);
        indexWriter.commit();
        indexWriter.close();
    }

}

删除示例:


import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.document.StringField;
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.search.NumericRangeQuery;
import org.apache.lucene.store.FSDirectory;
import org.apache.lucene.util.Version;
import org.wltea.analyzer.lucene.IKAnalyzer;

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

/**
 * 删除索引
 */
public class LunceneDelete {
    public static void main(String[] args) throws IOException {
        /**
         * 删除索引本质是先根据条件查询索引在删除索引,再创建索引
         */
        FSDirectory fsDirectory = FSDirectory.open(new File("E://test"));
        IndexWriterConfig indexWriterConfig = new IndexWriterConfig(Version.LATEST, new IKAnalyzer());
        IndexWriter indexWriter = new IndexWriter(fsDirectory, indexWriterConfig);
        Document document = new Document();
        document.add(new StringField("id","113", Field.Store.YES));
        document.add(new TextField("content", "无所谓", Field.Store.YES));
        indexWriter.addDocument(document);//写入索引
        //执行删除
        //1.条件删除
//        indexWriter.deleteDocuments(new Term("id","113"));
//        indexWriter.deleteDocuments(NumericRangeQuery.newIntRange("id",112,140,false,false));
        //2.删除所有
        indexWriter.deleteAll();
        indexWriter.commit();
        indexWriter.close();
    }
}

猜你喜欢

转载自blog.csdn.net/qq_15076569/article/details/83031743