当parse函数中指定多个项时,QueryParser能很方便地构建BooleanQuery对象。使用圆括号分组,通过指定的-、+、AND、OR以及NOT这些操作符。
允许进行逻辑的AND、OR或NOT组合,通过BooleanQuery的add方法将一个查询子句增加到某个BooleanQuery对象中:
public void add(Query query,boolean required,booleanprohibited)
|
|
Required | ||
|
False |
true | ||
|
Prohibited |
False |
该子句是可选(逻辑或) |
该子句是必须匹配(逻辑与) |
|
True |
该子句是不允许匹配的(逻辑非) |
| |
TermQuery searchingBooks=new TermQuery(newTerm("subject","search"));
RangeQuery currentBooks=new RangeQuery(newTerm("pubmonth","200401"),new Term("pubmonth","200412"),true);
BooleanQuery currentsearchingBooks=new BooleanQuery();
currentSearchingBooks.add(searchingBooks,true,false);
currentSearchingBooks.add(currentBooks,true,false);
IndexSearcher searcher=new IndexSearcher(directory);
Hits hits=searcher.search(currentSearchingBooks);
本文介绍如何使用Lucene的QueryParser和BooleanQuery来构建复杂的查询条件,包括如何使用逻辑运算符AND、OR、NOT来组合查询子句,并展示了具体的代码示例。
2344

被折叠的 条评论
为什么被折叠?



