lucene入门笔记01

Posted on 2015-02-26


刚刚接触lucene 5.0,记录一下索引和搜索的基本知识,核心API.

使用lucene的基本步骤

  • 添加Fields创建Document;
  • 使用addDocument()添加Documents,创建IndexWriter;
  • 调用QueryParse.parse()解析请求的string生成query;
  • 将query传递给新创建IndexSearcher对象的search()方法;

核心API小记录

org.apache.lucene.analysis

此模块定义了抽象为Analyzer的API,用于将文本从Reader转换成一个由一组token Attributes枚举组成的TokenStream TokenStream可以使用TokenFilters过滤Tokenizer的输出生成.Tokenizers和TokenFilters是串联着供Analyzer使用的. analyzers-common包提供了多个Analyzer的实现,其中包括StopAnalyzer和基于逗号分割的StandardAnalyzer.

org.apache.lucene.codecs

此模块包括倒排索引数据结构编解码抽象,以及供不同应用程序使用的多个实现.

org.apache.lucene.document

此模块包括一个简单的Document类.Document由一组Fields组成,Field的值可以是strings或者Reader的实例.

org.apache.lucene.index

此模块提供两个主要类,IndexWriter,用于创建和添加documents到索引;IndexReader,用于访问索引中的数据.

org.apache.lucene.search

此模块提供表示查询的数据结构(例如TermQuery,用于独立的单词,PhraseQuery,用于语句查询,和BooleanQuery,用于布尔组合查询), 和IndexSearcher,用于将查询转换成TopDocs.还有通过分析字符串或xml生成查询结构的多个查询分析器(QueryParsers).

org.apache.lucene.store

此模块将持久化数据存储结构抽象为目录(Directory).目录即一组有可以被IndexOutput写入和IndexInput读取的文件的集合. 目录有多个实现类,包括FSDirectory,通过文件系统保存文件,和RAMDirectory,用常驻内存的数据结构实现文件.

org.apache.lucene.util

包括少量方便的数据结构和工具类,例如FixedBitSet和PriorityQueue.

#

官网链接:http://lucene.apache.org/core/5_0_0/core/overview-summary.html#overview_description