Lucene 构造Query,查询多个Field

在 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 组装在一块。

你可能感兴趣的:(Lucene)