多条件检索需要使用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); |
No Comments yet »