It is not possible to count parent documents yet, but this will hopefully
be available in Elasticsearch 1.2.0 via the `reverse_nested`
aggregation[1], that would be able to translate back nested doc IDs to
parent doc IDs.

[1] https://github.com/elasticsearch/elasticsearch/issues/5485


On Tue, Apr 15, 2014 at 7:14 AM, Dan Testa <[email protected]> wrote:

> I am trying to use aggregations on nested type. I want to apply a nested
> filter to apply aggs to a subset of docs, but when I do that the "terms"
> aggregation counts nested docs, not parent docs. In other words, if same
> term is found in two different nested documents belong to the same parent,
> count will be two. I want it to count only once per parent document. Using
> "include_in_parent" does not help because then I cannot apply the nested
> filter.
>
> Here is my gist showing three different approaches:
>
> https://gist.github.com/dptesta/10688636
>
>
> 1.  nested_aggs.sh:  Did not use "include_in_parent".  Counts "Role1"
> twice instead of once.
>
>
> 2.  nested_include.sh:  Added "include_in_parent".  Counts "Role1" once,
> but also returns "Role2" since I cannot filter the nested docs.
>
>
> 3.  nested_include_key.sh:  My workaround for now.  Using
> "include_in_parent" plus added my filter into new field called
> "roleAdminKey".  Then on my aggregation I used "include" parameter to apply
> my filter.
>
>
> I have posted my results in the gist as well.  While #3 above works, my
> actual mapping contains many more fields with multiple levels of nesting
> and I'd like to be able to apply several other filtered aggregations on
> nested types without having to add a "*Key" field for each one.
>
>
> Is there a way to filter "terms" aggregations on nested types while
> returning the count of parent docs, not nested docs?
>
>
> Thanks,
>
> Dan
>
> --
> You received this message because you are subscribed to the Google Groups
> "elasticsearch" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/elasticsearch/6f3cfbf8-13aa-4c21-87e2-4eb54abc3995%40googlegroups.com<https://groups.google.com/d/msgid/elasticsearch/6f3cfbf8-13aa-4c21-87e2-4eb54abc3995%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>



-- 
Adrien Grand

-- 
You received this message because you are subscribed to the Google Groups 
"elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elasticsearch/CAL6Z4j6CjYmxgNAzXcEySXjBVR3yU49ipiu0vfto3w5RB%3DddTw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to