#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, но в этом случае агрегация для других полей не работает.
Спасибо!