Lucene in Action阅读笔记(3) Query 类型总结--Yin

为了实现学霸中复杂的搜索要求,我通读了《Lucene in Action》中的Query一章,Lucene支持多重查询形式,总有一种适合学霸~~

Searching by term: TermQuery

作用:搜索特定Field中包含特定Term的记录

例子:subject为学科集合,搜索“数据挖掘”类别下的记录

Term t = new Term("subject", "data mining");

Query query = new TermQuery(t);

TopDocs docs = searcher.search(query, 10);

Searching within a term range: TermRangeQuery

作用:搜索一个field下的值在一定范围内的所有记录

例子:搜索文档名字的按照ascii排序,在'a',和‘c’之间的文档

TermRangeQuery query = new TermRangeQuery("document", "a", "c",

true, true);//true代表不包括端点

Searching within a numeric range: NumericRangeQuery

作用:搜索一个field下的值在一定范围内的所有记录

例子:搜索出版年份在2010至2012年的文献

NumericRangeQuery query = NumericRangeQuery.newIntRange("pubmonth",

2010,

2012,

false,

false);

TopDocs matches = searcher.search(query, 10);

限制条件:只能用于NumericField

《未完待续》

 

你可能感兴趣的:(Lucene)