多条件检索需要使用BooleanQuery来实现,代码如下,这个例子需要使用时间范围和关键进行检索:
BooleanQuery simpleQuery = new BooleanQuery();//建立BooleanQuery
建立关键字Query
QueryParser keywordParser = new QueryParser(type, new PaodingAnalyzer()); org.apache.lucene.search.Query keywordQuery = keywordParser.parse(keyword);
建立RangeQuery
Term dateLower = new Term("publishDate", startYear + "0101"); Term dateUpper = new Term("publishDate", endYear + "1231"); RangeQuery dateQuery = new RangeQuery(dateLower, dateUpper, true);
将两个条件加入到BooleanQuery中
simpleQuery.add(keywordQuery, Occur.MUST); simpleQuery.add(dateQuery, Occur.MUST);