Lucene的重要基本类总结

Published: 07 Jul 2011 Category:

  为了复习Lucene,今晚读了Lucene in Action英文第二版的第一章。发现读英文技术书并没有我想的那么困难,以前因为效率原因总是优先选择读翻译的内容,因为这个第二版还没有中文版本,转读原版,竟然读出点感觉来。

  这里翻译部分书中内容,总结Lucene里重要的类,即书中第一章的主要内容。这些类是整个Lucene的基础。

   核心类包括索引类和搜索类。

核心索引类


IndexWriter-一个对象,可以使你写入索引但是不能读或者搜索索引。它把索引存在Directory中。

Directory:存放索引的地方。IndexWriter只能索引分成单个词的文本——使用analyzer。

Analyzer:负责从文本抽取词项的抽象类;去掉停用词;转换大小写……。分析过程需要一个文件,它包含了各个需要被索引的域。

Document:一个域的集合。

Field:域Field是一个保存需要索引的文本内容的类,由名称和对应值,一些选项组成。

核心搜索类


IndexSearcher:是一个将索引以只读模式打开的类。提供一些搜索方法。

Term:用于搜索的基本单元。和field类似,包含一个域的名称和域的文本内容。在搜索时,组合Term对象以和TermQuery一起使用。

Query:Lucene有一些具体的Query子类,它提供一些使用的方法,如setBoost。TermQuery是复杂查询的组成构件。

TermQuery:Query的子类,最简单的查询类型之一,用于匹配包含具有制定值的域的文件。

TopDocs:是包含排名最前的N个搜索结果指针的容器。存储了文件编号和分数值。