ElasticSearch Bodybuilder Вложенные фильтры - PullRequest
0 голосов
/ 17 октября 2018

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

Я в основном пытаюсь создать 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)»

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

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

...