zoukankan      html  css  js  c++  java
  • lucene创建索引简单示例

    利用空闲时间写了一个使用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();

        }

    }

    创建的索引如下图:

  • 相关阅读:
    JS绑定种类汇总
    JS的块级作用域
    JS中的几种函数
    区分词法作用域(js)与动态作用域(精!)
    JS Dom节点操作demo!
    JS作用域相关知识(#精)
    js解析器(重要!)
    JS之鼠标在盒子中的位置
    JS之鼠标跟随
    JS之事件对象体验
  • 原文地址:https://www.cnblogs.com/malcolm/p/3598676.html
Copyright © 2011-2022 走看看