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

[FEATURE] Add overloads that takes multiple `QueryDescriptor`s to Filter()/Must()/MustNot()/Should() of `BoolQueryDescriptor`

Open rlindber opened this issue 1 year ago • 1 comments

Is your feature request related to a problem? Please describe. The current code using Nest is generating QueryDescriptor object, that are finally combined in a BoolQueryDescriptor with calls to Filter(), Must(), MustNot() or Should(). Example signature from Nest client:

public BoolQueryDescriptor<T> Must(params QueryContainer[] queries)

Describe the solution you'd like The corresponding function for BoolQueryDescriptor in Elastic.Clients only takes one QueryDescriptor, instead of an array as in Nest. From Elastic.Clients:

public BoolQueryDescriptor<TDocument> Must(QueryDescriptor<TDocument> descriptor)

Could these four function be replaced with functions that take multiple QueryDescriptor objects, e.g. using "params", like this?

public BoolQueryDescriptor<TDocument> Must(params QueryDescriptor<TDocument>[] descriptors)

Describe alternatives you've considered It would require a lot of work to rewrite the existing code to used a function that take multiple object, like

public BoolQueryDescriptor<TDocument> Must(params Action<QueryDescriptor<TDocument>>[] configure)

or

public BoolQueryDescriptor<TDocument> Must(ICollection<Query>? must)

rlindber avatar Mar 30 '23 11:03 rlindber