elasticsearch-net icon indicating copy to clipboard operation
elasticsearch-net copied to clipboard

FiltersAggregationDescriptor doesn't support descriptors to specify filters

Open JuganD opened this issue 1 year ago • 2 comments

Elastic.Clients.Elasticsearch version: 8.1.1

Elasticsearch version: 8.8.0

.NET runtime version: .NET 7

Operating system version: Windows 11

Description of the problem including expected versus actual behavior: There is no overload of FiltersAggregationDescriptor<>.Filters() that supports descriptors. I see this as a bug, because the entire codebase is successfully using descriptors from the point of connecting to the server to the point of getting a response, the entire flow is working with QueryDescriptor<>, but this class doesn't provide any way to utilize descriptors as filters.

My parameters are all coming in as descriptors and there is no way to provide them to the Filters method, as it only accepts Buckets<Query>.

Previously, using NEST, there was a Filter, instead of Filters method, which was utilized like this: filterAggregation.Filter(f => firstQuery & secondQuery). Since there is no way of combining queries like this, as far as I'm aware, it should be able to work with multiple descriptors, ultimately achieving the same goal.

Steps to reproduce:

  1. Create new SearchRequestDescriptor<T>()
  2. Use the Aggregations method, which exposes an AggregationDescriptor<>
  3. Use Filters method, which exposes FiltersAggregationDescriptor<>
  4. There is no way to pass descriptors to FiltersAggregationDescriptor<>.Filters() method

Expected behavior The class FiltersAggregationDescriptor should have an overload for the Filters method, which either accepts params Action<QueryDescriptor<TDocument>>[] configure or any kind of collection of descriptors, Buckets will also work as long as it accepts QueryDescriptor.

JuganD avatar Jul 11 '23 13:07 JuganD

Are there some intentions of fixing this soon? Really needing it :/

juvemar avatar Nov 24 '23 16:11 juvemar