没有比人更高的山

Lucene多条件检索

多条件检索需要使用BooleanQuery来实现,代码如下,这个例子需要使用时间范围和关键进行检索:

1
BooleanQuery simpleQuery = new BooleanQuery();//建立BooleanQuery

建立关键字Query

1
2
QueryParser keywordParser = new QueryParser(type, new PaodingAnalyzer());
org.apache.lucene.search.Query keywordQuery = keywordParser.parse(keyword);

建立RangeQuery

1
2
3
Term dateLower = new Term("publishDate", startYear + "0101");
Term dateUpper = new Term("publishDate", endYear + "1231");
RangeQuery dateQuery = new RangeQuery(dateLower, dateUpper, true);

将两个条件加入到BooleanQuery中

1
2
simpleQuery.add(keywordQuery, Occur.MUST);
simpleQuery.add(dateQuery, Occur.MUST);
VN:F [1.7.5_995]
Rating: 0.0/10 (0 votes cast)
VN:F [1.7.5_995]
Rating: +1 (from 1 vote)

No Comments yet »

发表评论:

Switch to our mobile site