Мне нужно создать что-то вроде расширенного поиска, используя ES REST High Level Client (Java).
Во-первых, у меня есть ключевое слово для поиска, которое ищет все поля.
Я использую QueryStringQueryBuilder
для этого.
SearchSourceBuilder ticketInfoSourceBuilder = new SearchSourceBuilder();
ticketInfoSourceBuilder.from(pageable.getOffset());
ticketInfoSourceBuilder.size(pageable.getPageSize());
ticketInfoSourceBuilder.sort(new FieldSortBuilder(sortField).order(sortOrder));
ticketInfoSourceBuilder.query(QueryBuilders.queryStringQuery("ABC1234"));
Теперь мне нужно добавить еще несколько фильтров, используя TermsQueryBuilder
.
Можно ли объединить два построителя запросов?
Я хотел бы добавитьследующие фильтры:
"terms" : { "ticket.inquiryType" : ["INQTYP01", "INQTYP06"]}
"terms" : { "ticket.status" : ["NEW", "CLOSED"]}
"terms" : { "ticket.ownership" : ["OWNED", "OTHER_OWNER"]}
Можно ли объединить оба построителя запросов для достижения чего-то вроде расширенного поиска?
Спасибо!