Lucene多条件检索

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

你可能对下面的文章感兴趣

  1. Lucene中的TooManyClause异常

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">