You are looking at documentation for an older release.
Not what you want? See the
current release documentation.
Reverse Nested aggregationedit
A special single bucket aggregation that enables aggregating on parent docs from nested documents.
Fluent DSLedit
var response = client.Search<ElasticSearchProject>(s => s
.Aggregations(a => a
.Nested("tags", n => n
.Path(p => p.Tags)
.Aggregations(aa => aa
.Terms("tag_names", t => t
.Field(p => p.Tags.Suffix("name"))
.Aggregations(aaa => aaa
.ReverseNested("tags_to_project", r => r
.Path("project")
.Aggregations(aaaa => aaaa
.Terms("top_projects_per_tag", tt => tt
.Field(p => p.Name)
)
)
)
)
)
)
)
)
);Object Initializer Syntaxedit
var request = new SearchRequest
{
Aggregations = new Dictionary<string, IAggregationContainer>
{
{ "tags", new AggregationContainer
{
Nested = new NestedAggregator
{
Path = "tags"
},
Aggregations = new Dictionary<string, Nest.IAggregationContainer>
{
{
"tag_names", new AggregationContainer
{
Terms = new TermsAggregator
{
Field = "tags.name"
},
Aggregations = new Dictionary<string, Nest.IAggregationContainer>
{
{
"tags_to_projects", new AggregationContainer
{
ReverseNested = new ReverseNestedAggregator
{
Path = "project"
},
Aggregations = new Dictionary<string, Nest.IAggregationContainer>
{
{
"top_projects_per_tag", new AggregationContainer
{
Terms = new TermsAggregator
{
Field = "name"
}
}
}
}
}
}
}
}
}
}
}
}
}
};Refer to the original docs fore more information.