注: これは機能しますが、よりHibernate風のアプローチについては、他の回答を参照してください
createQuery()標準の Lucene Queryを返します。したがって、Lucene で 2 つのクエリをマージする一般的な方法は、BooleanQueryを使用することです。
Query query1 = qBuilder.keyword().onField("firstname").matching("John").createQuery();
Query query2 = qBuilder.keyword().onField("lastname").matching("Doe").createQuery();
BooleanQuery bq = new BooleanQuery();
//Assuming you want to require a match on both first and last names.
//If a match on either is enough, use BooleanClause.Occur.SHOULD
bq.add(new BooleanClause(query1, BooleanClause.Occur.MUST));
bq.add(new BooleanClause(query2, BooleanClause.Occur.MUST));