PermissionQuery allowQuery = new PermissionQuery("prices.permissions", operation, user, true);
PermissionQuery dannyQuery = new PermissionQuery("prices.permissions", operation, user, false);
BooleanQuery query = new BooleanQuery.Builder()
.add(allowQuery, BooleanClause.Occur.MUST)
.add(dannyQuery, BooleanClause.Occur.MUST_NOT)
.build();
filter = predicate.nested().objectField("prices")
.nest(f -> f.extension(LuceneExtension.get()).fromLuceneQuery(query))
.toPredicate();
sort.add(sorter.field("prices.bruttoPrice_sort")
.asc()
.mode(SortMode.MIN)
.filter(filter));
SearchQuery<Assortment> query = session.search(scope)
.where((f) -> f.bool().must(select)
.filter(filter))
.sort(sort.toSort())
.toQuery();