指定索引所在目录
FSDirectory 存放于磁盘上的文件系统读索引,依靠Directory类初始化
如 IndexReader reader=DirectoryReader.open(directory);用于索引检索,依靠IndexReader类初始化。依靠Query类进行搜索。
如IndexSearcher searcher=new IndexSearcher(reader);分词器
如Analyzer analyzer=new StandardAnalyzer();
描述要查找单词所在的域(Field)与内容(content)。
如Term term=new Term("field","content");
“this”、“,”之类的停用词一般会被收录进索引中,但在搜索的时候被过滤掉。
查询串中可能包含一些高给语法,例如要查找包含“java”的pdf文件,可以使用查询串“java filetype:pdf”。所以可以用查询解析器QueryParser来解析,也就是根据查询串生成Query对象,如:
Analyzer analyzer=new StandardAnalyzer();
QueryParser qp=new QueryParser("field",analyzer);
Query query=qp.parse("queryString");
查询类,抽象类
TermQuery 最简单、最基本的Query,用来查询不切分的单词。依靠Term类初始化如Query query=new TermQuery(term);
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).
存放IndexSearcher类的查询结果,表示搜索的命中返回。
Represents hits returned by Searcher.search(Query, Filter, int) and Searcher.search(Query, int).
如TopDocs topDocs=searcher.search(query,10);
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.
一个ScoreDoc对象代表着搜索的命中返回结果的一个文档。
Holds one hit in TopDocs.
ScoreDoc 中的score属性表示相关程度,取值范围[0,1],越大越相关。