booleanJunction to support E1 && (N1|| N1||N1) where E1 is existing predicates and N1,N2,N3 is new predicates

SearchPredicate stibPredicate = factory.match().field(field)
SearchPredicate delinPredicate = factory.match().field(field)
SearchPredicate techPredicate = factory.match().field(field)
these predicates should go in such a way that final booleanJunction will search with other must clause along with any one of them present.
I know I am not able to frame it well so giving below example.

booleanJunction.must(newConditon1 or newConditon2 or newConditon3);

so suppose existingCondition = datarange (day-1, day+1)
newConditon1 = product1
newConditon2 = product2
newConditon3= product3

in short we need E1 && (N1|| N1||N1) currently it is E1 || N1 || N2 || N3

The documentation already explains how to implement an AND and how to implement an OR. Just compose those two approaches?


factory.bool() // AND
    .must(factory.bool() // OR