返回顶部

收藏

Lucene 生成索引以及搜索的完整例子

更多

简单,但足以说明问题。适用于 Lucene 3.0.x 版本。

package net.oschina.tester;

import org.apache.lucene.analysis.SimpleAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.ScoreDoc;
import org.apache.lucene.search.TermQuery;
import org.apache.lucene.search.TopDocs;
import org.apache.lucene.store.RAMDirectory;

/**
 * 搜索测试
 * @author Winter Lau
 * @date 2010-10-18 下午09:20:18
 */
public class SearchTester {

    private static RAMDirectory dir;
    private static SimpleAnalyzer a;
    private static IndexSearcher searcher;

    /**
     * @param args
     */
    public static void main(String[] args) throws Exception {
        buildIndex();
        testSearch();
    }

    static void testSearch() throws Exception {
        Query q = new TermQuery(new Term("tags","TkRoot".toLowerCase()));
        TopDocs docs = searcher.search(q, null, 100000);
        System.out.println("HITS:"+docs.totalHits);
        for(int i = 0; i< docs.totalHits;i++){
            ScoreDoc s_doc = docs.scoreDocs[i];
            Document doc = searcher.doc(s_doc.doc);
            System.out.println(doc);
        }
    }

    static void buildIndex() throws Exception {
        dir = new RAMDirectory();
        a = new SimpleAnalyzer();
        IndexWriter writer = new IndexWriter(dir, a, IndexWriter.MaxFieldLength.UNLIMITED);
        Document doc = new Document();
        doc.add(new Field("id", "1", Field.Store.YES, Field.Index.NOT_ANALYZED));
        doc.add(new Field("tags", "Java,数组,TkRoot", Field.Store.NO, Field.Index.ANALYZED));
        System.out.println(doc);
        writer.addDocument(doc);
        writer.close();
        searcher = new IndexSearcher(dir);
    }
}
//该片段来自于http://outofmemory.cn

标签:java,基础

收藏

0人收藏

支持

0

反对

0

相关聚客文章
  1. 博主 发表 2013-08-26 02:35:24 JAVA操作Hbase基础例子
  2. Terry Zhang 发表 2014-04-27 08:18:40 [集合框架] Java 集合框架简介
  3. Terry Zhang 发表 2014-05-02 08:58:00 [集合框架] Set 接口
  4. 郑 旭东 发表 2014-01-16 16:46:51 JAVA多线程和并发基础面试问答
  5. Terry Zhang 发表 2014-04-17 15:27:06 [正则] 字符类型
  6. Terry Zhang 发表 2014-04-27 10:43:29 [集合框架] 接口
  7. 逍遥冲 发表 2013-12-05 05:53:28 [引]Java NIO —- IO复用
  8. 糖果 发表 2015-08-03 21:33:22 逆向基础(十三) JAVA (四)
  9. Terry Zhang 发表 2014-04-18 05:08:52 [NIO.2] 编写一个文件拷贝应用
  10. Terry Zhang 发表 2014-04-24 08:14:18 [正则] 边界匹配器
  11. Terry Zhang 发表 2014-05-03 06:33:32 [集合框架] List 接口
  12. Terry Zhang 发表 2014-05-13 06:05:01 [集合框架] SortedSet 接口