Is it possible to aggregate only on the nested documents that are returned
by a (filtered) query? For what I can tell when using a nested aggregation,
it will function on all nested documents of the parent documents whose
nested document satisfy a nested query/filter. Did that make sense? :) Is
this the same limitation as issue #3022? I know that number by heart by now.

For example, I have 3 simple documents, where the nstd object is defined as
nested:

{
  "name" : "foo",
  "nstd" : [
    {
        "ID" : 1
    }
  ]
}
'

{
  "name" : "bar",
  "nstd" : [
    {
        "ID" : 2
    }
  ]
}
'

{
  "name" : "baz",
  "nstd" : [
    {
        "ID" : 1
    },
    {
        "ID" : 2
    }
  ]
}
'

I then execute a simple nested query:

   "query": {
      "filtered": {
         "query": {
            "match_all": {}
         },
         "filter": {
            "nested": {
               "path": "nstd",
               "filter": {
                  "term": {
                     "nstd.ID": 1
                  }
               }
            }
         }
      }
   }

If I aggregate on the nstd.ID field, I will always get back results for
nested documents that were excluded by the filter:

            "buckets": [
               {
                  "key": 1,
                  "doc_count": 2
               },
               {
                  "key": 2,
                  "doc_count": 1
               }
            ]

Since the ID:2 field does not match the filter, it should not be returned
with the aggregation. I have tried using a filter aggregation with the same
filter used in the filtered query, but I receive the same results.

Cheers,

Ivan

-- 
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 elasticsearch+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elasticsearch/CALY%3DcQBsrKGntY-WT1PWZbTynxFvfw%2BYc7K2Q7a8NX3ive7t2w%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to