lucene3.0范围查找TermRangeQuery

 

在lucene3.0中,范围查询也有很大的变化,RangeQuery已经不推荐使用,使用TermRangeQuery和NumericRangeQuery两个替代。

TermRangeQuery:主要用于文本范围查找;

IndexReader reader = IndexReader.open(FSDirectory.open(INDEX_DIR), true); // only searching,

Searcher searcher = new IndexSearcher(reader);

String field = "starttime";

TermRangeQuery query = new TermRangeQuery(field, "2009年01月01日","2009年01月05日",true,true);

ScoreDoc[] hits = searcher.search(query, null, topnum).scoreDocs;
 

NumericRangeQuery:要使用它,首先要使用NumericField 给数字建索引(当然这个的term就是数字的了)。如果你的term是文本,那就是使用TermRangeQuery 。

猜你喜欢

转载自san-yun.iteye.com/blog/1601131
今日推荐