Я использую конструктор запросов с именем Body Builder Мне нужно, чтобы конструктор работал на основе количества выбранных фильтров.Таким образом, фильтр по умолчанию для определенного типа списка выглядит следующим образом:
bodybuilder()
.aggregations('terms', 'listingType.keyword', 'Type')
.build()
, который работает как ожидалось.У меня есть ведро агрегации, которое мне нужно.
Что, если предмет был выбран?Я бы хотел добавить этот фильтр к нему.
Вот как я хочу, чтобы он выглядел так:
bodybuilder()
.addFilter('term', 'itemTypeId', 2)
.aggregations('terms', 'listingType.keyword', 'Type')
.build()
Или, если было выбрано несколько элементов, то ..
bodybuilder()
.addFilter('term', 'itemTypeId', id)
.addFilter('term', 'moo.keyword', moo)
.addFilter('term', 'make.keyword', make)
.aggregations('terms', 'listingType.keyword', 'Type')
.build()
У меня есть массив выбранных фильтров.Я подумал, что мог бы сделать что-то вроде:
const activeFilters = [{type: 'make.keyword, value: 'SAMSUNG'}, {type: 'moo.keyword', value: 'moo'}]
if (activeFilters) {
activeFilters.map(item => {
addFilter(item.type, item.value)
}
}
//OR
bodybuilder()
activeFilters.map(item => addFilter(item.type, item.value)
.aggregation('terms' , 'listingType.keyword', 'Type')
.build()
Что-то в этом роде.Любые рекомендации?
Спасибо!