在 Lucene 中,查询多 Field 构造Query ,最先想到MultiFieldQueryParser ,但是构造的时候 必须有个 queryString ,就是搜索一个串,去匹配多个Field 。
有时候有这样的需求,每个 Field 匹配的不一样,如更新索引时,需要更精确匹配到,这样的就没法满足了。
TermQuery query1 = new TermQuery(term1);
TermQuery query2 = new TermQuery(term2);
BooleanQuery query = new BooleanQuery();
query.add(query1, BooleanClause.Occur.SHOULD);
query.add(query2, BooleanClause.Occur.SHOULD);
这样就可以把多个Query 组装在一块。