我以编程方式创建布尔查询。像这样:
BooleanQuery query = new BooleanQuery();
for (Iterator<String> it = guids.iterator(); it.hasNext();) {
String guid = it.next();
query.add(new BooleanClause(
new TermQuery(
new Term("guid",guid)
),
BooleanClause.Occur.SHOULD));
}
然后我从解析器返回它。在我设置的解析器中
parser.setDefaultOperator(QueryParser.Operator.AND);
问题是仍然返回一个查询
guid:dafafafa guid:dadafafaf
使用默认运算符意味着:
guid:dafafafa AND guid:dadafafaf
但我想要的是:
guid:dafafafa OR guid:dadafafaf
为什么查询解析器不负责调整默认运算符????