ElasticSearch Bodybuilder Вложенные фильтры

У меня есть сайт, где посетитель может выбрать несколько фильтров.

Я в основном пытаюсь создать orFilter, где я просто скажу, чтобы соответствовать всем строкам, где производитель является одним из выбранных.

Я бы хотел, чтобы запрос был вложенным, так как есть и другие фильтры, и простое помещение нескольких orFilters в основном отменяет другие фильтры.

let facetValues = ['BMW', 'Mercedes','Honda'] //(put for simplicity)
facetValues.forEach(value => {
   elasticQuery = elasticQuery.orFilter('term', 'manufacturer', value)
})

Это то, что у меня сейчас.

Если также добавить

let facetValues = [2016, 2017, 2018] //(put for simplicity) 
facetValues.forEach(value => {
   elasticQuery = elasticQuery.orFilter('term', 'production_year', value)
})

Тогда это будет в основном "соответствовать каждому документу, который соответствует любому из 6 атрибутов выше (т.е. 2016 или 2017 или 2018 или BMW, или Mercedes, или Honda)".

Что я на самом деле хочу, чтобы результат был матч ((2016 или 2017 или 2018) и (BMW или Mercedes или Honda))

Любые идеи я бы пошел, чтобы достичь этого? Пожалуйста, поправьте меня, если я ошибаюсь.

0 ответов

Другие вопросы по тегам