Prepare Qyuery using Predicates

I am struggling to prepare predicates, as per my requirement
I need to add MUST and SHOULD depend on user operator like IS,IS_NOT,Empty…etc
On based of operator I want to and MUST and SHOULD in end,

So can you guys help me to achive it , I will try to add some part code here
in hibernate search 5 I were using as below

		query = queryBuilder.keyword().onField(criterion.getField()).matching(criterionValue).createQuery();
					}
					if (query != null) {
						if (criterion.getOperator().equals(SearchOperatorsEnum.IS.getName())) {
							booleanQuery = queryBuilder.bool()
									.must(query)
									.createQuery();
						} else if (criterion.getOperator().equals(SearchOperatorsEnum.IS_NOT.getName())) {
							Query allDocsQuery = queryBuilder.all().createQuery();
							booleanQuery = queryBuilder.bool()
									.must(allDocsQuery)
									.must(query).not()
									.createQuery();

						} else {
							throw new IllegalArgumentException ("Operator " + criterion.getOperator() + " for field " + criterion.getField() + " not valid");
						}

So how to replace it in HS 6 or 7

Hey,

Here are the examples in the reference documentation: Hibernate Search 7.2.1.Final: Reference Documentation ?

SearchPredicate query = ...;
SearchScope<MyEntity> scope = searchSession.scope( MyEntity.class );

SearchPredicate predicate;
if ( condition1 ) {
	predicate = scope.predicate().bool()
			.must( query )
			.toPredicate();
}
else if (condition2){
	predicate = scope.predicate().bool()
			.must( scope.predicate().matchAll() )
			.mustNot( query )
			.toPredicate();
}

or add the clauses dynamically: Hibernate Search 7.2.1.Final: Reference Documentation

Can you give me example of query , which I can put in .must(query)
considering your example

SearchPredicate query = ...;

In my case can I write as below, with casting ?

note pf is SearchPredicateFactory

SearchPredicate predicate = (SearchPredicate) pf.match().field(criterion.getField()).matching(criterionValueInt);

Ignore My question, I achieved using .toPredicate()

SearchPredicate predicate = pf.match().field(criterion.getField()).matching(criterionValueInt).toPredicate();

Thank you