-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Missing && operator between aggregations #8133
Comments
Hi @gpetrou! With the new generator design, aggregation variants do not derive from a common base-class anymore (the same thing as for the I'm fine with adding back this functionality to var aggregations = Aggregation.Min(...) && Aggregation.Max(...); would work fine in this case, but the previously available syntax won't: var aggregations = new MinAggregation{...} && new MaxAggregation{...}; |
Well, nevermind. I remember why I did not re-implement this 😋 In the versions prior to 8.12, the name of the aggregation was pulled into the actual variant. For example, In the versions starting with 8.13, this got changed to be consistent with the resulting JSON structure (the aggregation name is a key in a dictionary and the aggregation variant is the corresponding value). The old design caused many issues, because it required a lot of hacks during serialization (have a look at In consequence, this means that we can not compose a dictionary of aggregations from the individual aggregation variants using the But in my opinion, the reason for introducing Aggregations = new AggregationDictionary
{
{"average_per_child", new AverageAggregation("average_per_child", ...)},
{"max_per_child", new MaxAggregation("max_per_child", ...)},
{"min_per_child", new MinAggregation("min_per_child", ...)},
} and the Aggregations =
new AverageAggregation("average_per_child", ...)
&& new MaxAggregation("max_per_child", ...)
&& new MinAggregation("min_per_child", ...) In the latest version of the 8.x client, initialization is more straightforward anyways: Aggregations = new Dictionary<string, Aggregation>
{
{"average_per_child", Aggregation.Average(...)},
{"max_per_child", new MaxAggregation(...)},
{"min_per_child", new MinAggregation(...)},
} |
I hope you understand, that I can not bring this functionality back for technical reasons. I will make sure to document that in the release notes of 8.13.0. |
I see. OK. Thanks. |
@flobernd, can you show me how to initialize Aggregation with aggregations in the latest 8.13.* client? How "translate" this query in C#:
I tried
but how to set up name "my-terms aggs" in TermsAggregation in that case? |
Elastic.Clients.Elasticsearch version: 8.13.5
Elasticsearch version: 8.11
.NET runtime version: 8.0
Operating system version:
Description of the problem including expected versus actual behavior:
It looks like in 8.13.x versions we cannot use && operator between aggregations. Has this been replaced by something else? If yes, what is that? If no, are you planning to add this back?
Steps to reproduce:
1.
2.
3.
Expected behavior
A clear and concise description of what you expected to happen.
Provide
ConnectionSettings
(if relevant):Provide
DebugInformation
(if relevant):The text was updated successfully, but these errors were encountered: