Эластичное ГНЕЗДО не применяет результаты агрегирования к фильтру, который был использован

#c# #elasticsearch #nest

Вопрос:

Я застрял с проблемой.

Допустим, у меня есть несколько фильтров:

  • Цвет
  • Размеры
  • Бренды

В настоящее время я применяю фильтры для запроса bool, используя следующий код:

 .Query(q => q.Bool(b => GetQuery().Filter(f => GetFilter()))
            .Aggregations(a => a.Terms(sizesAggName, tt => tt.Field(o => o.Sizes.Suffix("keyword")))
                                .Terms(brandsAggName, tt => tt.Field(o => o.Brand.Suffix("keyword")))
                                .Terms(colorsAggName, tt => tt.Field(o => o.Colours.Suffix("keyword")))
                                .Terms(categoryFilterAggName, tt => tt.Field(o => o.Category_filter.Suffix("keyword")))
                                .Max(priceAggNameMax, st => st.Field(o => o.SalePrice))
 

С помощью этого кода при выборе цвета применялась агрегация «черный» для всех полей, но я хотел бы применить агрегацию для всех остальных полей, но не для цветов, потому что я хотел бы иметь возможность выбирать больше цветов, если это необходимо.

Допустим, у цветового фильтра есть опции: черный, оранжевый, зеленый. Если я выберу зеленый, то другие параметры больше не будут отображаться. Я пытался фильтровать с помощью PostFilter, но в этом случае агрегация для других полей не работает.

Спасибо!