Search code examples
javalucenebooleanquery

Lucene 6.0! How to instantiate a BooleanQuery and add other search queries in it?


How to instantiate a BooleanQuery in Lucene 6.x ? How to use Boolean Query to add other queries in it ?

In Lucene 4.x we use BooleanQuery as follow:

    BooleanQuery booleanQuery = new BooleanQuery();
    booleanQuery.add(query1, BooleanClause.Occur.MUST);
    booleanQuery.add(query2, BooleanClause.Occur.MUST);

How this can be achieved in Lucene 6.


Solution

  • BooleanQuery is now immutable (you can read about the change in the Migration guide and the linked JIRA issues).

    Instead, you would now use BooleanQuery.Builder:

    BooleanQuery booleanQuery = new BooleanQuery.Builder()
        .add(query1, BooleanClause.Occur.MUST)
        .add(query2, BooleanClause.Occur.MUST)
        .build();