lucene 常用类

常用类简介

Directory 

指定索引所在目录

FSDirectory 存放于磁盘上的文件系统
RAMDirectory 存放于内存中的目录,用于测试等用途
如Directory directory=FSDirectory.open(new File("filePath"));

IndexReader 

读索引,依靠Directory类初始化

IndexReader reader=DirectoryReader.open(directory);

IndexSearcher 

用于索引检索,依靠IndexReader类初始化。依靠Query类进行搜索。

如IndexSearcher searcher=new IndexSearcher(reader);

Analyzer 

分词器

如Analyzer analyzer=new StandardAnalyzer();

Term 

描述要查找单词所在的域(Field)与内容(content)。

如Term term=new Term("field","content");

“this”、“,”之类的停用词一般会被收录进索引中,但在搜索的时候被过滤掉。

QueryParser

查询串中可能包含一些高给语法,例如要查找包含“java”的pdf文件,可以使用查询串“java filetype:pdf”。所以可以用查询解析器QueryParser来解析,也就是根据查询串生成Query对象,如:

Analyzer analyzer=new StandardAnalyzer();
QueryParser qp=new QueryParser("field",analyzer);
Query query=qp.parse("queryString");

Query 

查询类,抽象类

TermQuery 最简单、最基本的Query,用来查询不切分的单词。依靠Term类初始化

如Query query=new TermQuery(term);

Weight

计算query权重并构建查询“记分员”。
Expert: Calculate query weights and build query scorers. 

TopDocsCollector<?>

所有返回TopDocs类的基类.
A base class for all collectors that return a TopDocs output. 

TopScoreDocCollector TopScoreDocCollector.create(int numHits, boolean docsScoredInOrder)
该函数创建TopScoreDocCollector对象。参数1:要收集的命中文档个数。 参数2:是否按打分结果排序。
Creates a new TopScoreDocCollector given the number of hits to collect and whether documents are scored in order by the input Scorer to setScorer(Scorer).

TopDocsCollector.topDocs(int start)

该函数返回被Collector收集到的范围[start,end]中的文档。
Returns the documents in the rage [start .. pq.size()) that were collected by this collector.

TopFieldCollector

通过SortField,使用FieldComparators进行排序的Collector。
A Collector that sorts by SortField using FieldComparators。

TopDocs 

存放IndexSearcher类的查询结果,表示搜索的命中返回。
Represents hits returned by Searcher.search(Query, Filter, int) and Searcher.search(Query, int). 

如TopDocs topDocs=searcher.search(query,10);

Field

org.apache.lucene.document.Field.Store
指明一个字段是否需要存储和如何存储
Specifies whether and how a field should be stored.

org.apache.lucene.document.Field.Index
指明一个字段是否需要索引和如何被索引
Specifies whether and how a field should be indexed.

SortField

存储关于根据term如何对检索出来的独立的文档进行排序的信息。
Stores information about how to sort documents by terms in an individual field. Fields must be indexed in order to sort by them. 

ScoreDoc 

一个ScoreDoc对象代表着搜索的命中返回结果的一个文档。
Holds one hit in TopDocs. 

如ScoreDoc[] scoreDocs = topdocs.scoreDocs;

ScoreDoc 中的score属性表示相关程度,取值范围[0,1],越大越相关。

  


你可能感兴趣的:(lucene 常用类)