lucene创建索引简单示例

Posted on 2014-03-13 15:32  关心  阅读(302)  评论(0编辑  收藏  举报

利用空闲时间写了一个使用lucene创建索引简单示例,

1.使用maven创建的项目

2.需要用到的jar如下:

废话不多说,直接贴代码如下:

1.创建索引的类(HelloLucene):

package test.lucene;

import org.apache.lucene.analysis.standard.StandardAnalyzer;

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.store.Directory;

import org.apache.lucene.store.FSDirectory;

import org.apache.lucene.util.Version;

 

import java.io.File;

import java.io.FileReader;

 

/**

 * 创建索引类

 * Created with IntelliJ IDEA.

 * User: jackzhao

 * Date: 14-3-13

 * Time: 下午2:57

 * To change this template use File | Settings | File Templates.

 */

public class HelloLucene {

 

    /**

     * 创建索引

     */

    public void createIndex(){

        try

        {

            //1.创建Directory

            //在磁盘上创建索引

             Directory dir= FSDirectory.open(new File("d:/lucene/TestIndex"));

            //2.创建IndexWriter

            IndexWriterConfig iwc=new IndexWriterConfig(Version.LUCENE_47,new StandardAnalyzer(Version.LUCENE_47));

            IndexWriter writer=new IndexWriter(dir,iwc);

            //3.创建Document

            Document document=null;

            File f=new File("d:/lucene/TestData");

            for(File file:f.listFiles())

            {

                document=new Document();

                //4.为Document添加Field对象

                document.add(new StringField("filename",f.getName(), Field.Store.YES));

                document.add(new StringField("path",f.getAbsolutePath(), Field.Store.YES));

                document.add(new TextField("context",new FileReader(file)));

            }

            //5.关闭IndexWriter

             writer.close();

        }

        catch (Exception ex)

        {

            ex.printStackTrace();

        }

    }

}

2.单元测试类(LuceneTest):

import org.junit.Test;

import test.lucene.HelloLucene;

 

/**

 * 单元测试类

 * Created with IntelliJ IDEA.

 * User: jackzhao

 * Date: 14-3-13

 * Time: 下午3:15

 * To change this template use File | Settings | File Templates.

 */

public class LuceneTest {

    @Test

    public void testLucene(){

        HelloLucene hl=new HelloLucene();

        hl.createIndex();

    }

}

创建的索引如下图:

Copyright © 2024 关心
Powered by .NET 9.0 on Kubernetes