Когда нет 'must', 'should' должно соответствовать условию.
Вы можете добавить его в конец (.minimumShouldMatch (2))
Как минимум два условия.
boolqueryBuilder
.should(QueryBuilders.matchPhrasePrefixQuery("dishName", (userSearchCriteriaContainer.getSearchString() == null ? "" : userSearchCriteriaContainer.getSearchString())))
.should(QueryBuilders.termQuery("cuisineTypes", String.valueOf(userSearchCriteriaContainer.getCuisineTypes())) )
.should(QueryBuilders.termQuery("mealType", String.valueOf(userSearchCriteriaContainer.getDishList())) )
.should(QueryBuilders.termQuery("preparationTime", String.valueOf(userSearchCriteriaContainer.getPreparationTime())) )
.minimumShouldMatch(2);