首页 > 代码库 > Lucene创建索引

Lucene创建索引

1.创建Java项目(lucene)

技术分享


2.创建CreateIndex类,包名(com.zhishang.lucenc)

package com.zhishang.lucene;

import org.apache.commons.io.FileUtils;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.*;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;
import org.apache.lucene.util.Version;
import org.junit.Test;

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

/**
 * Created by Administrator on 2017/7/7.
 */
public class CreateIndex {
    public static final String indexDir = "G:/index";
    public static final String dataDir = "G:/data";

    @Test
    public void createIndex(){
        try {
            Directory dir = FSDirectory.open(new File(indexDir));
            //分词器
            Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_4_9);
            IndexWriterConfig config = new IndexWriterConfig(Version.LUCENE_4_9,analyzer);
            config.setOpenMode(IndexWriterConfig.OpenMode.CREATE_OR_APPEND);
            IndexWriter writer = new IndexWriter(dir,config);

            File file = new File(dataDir);
            File[] files = file.listFiles();
            for(File f:files){
                Document doc = new Document();
                doc.add(new StringField("filename",f.getName(), Field.Store.YES));
                doc.add(new TextField("content", FileUtils.readFileToString(f),Field.Store.YES));
                doc.add(new LongField("lastmodify",f.lastModified(), Field.Store.YES));
                writer.addDocument(doc);
            }

            writer.close();
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}



3.运行CreateIndex函数,查看G:/index下生成的文件

技术分享

本文出自 “素颜” 博客,请务必保留此出处http://suyanzhu.blog.51cto.com/8050189/1945345

Lucene创建索引