I want to know if it is possible to filter the contents of an aggregation 
rather than just the documents returned by the query. For instance, I have 
a set of documents that have an array property called related concepts. I 
want to count the number of documents for each related concept that meet my 
search query. The resulting bucket looks like this:

"related_concepts": {
    "buckets": [
        {
            "key": "foo",
            "doc_count": 3821
        },
        {
            "key": "bar",
            "doc_count": 3803
        },
        {
            "key": "other",
            "doc_count": 23
        }
    ]
}

Now imagine that there are 2,000 related concepts, however, using a graph 
database I know I'm interested in a specific 5 or 6. Using the example 
above, let's say for a specific result set I want to return the bucket 
counts only for the terms "foo" and "other" but NOT include "bar" or any 
other buckets. Sort of like a SQL WHERE or HAVING clause.

I tried adding a filter to the aggregation, but it only seemed to filter 
the numbers for the aggregations, not restrict which buckets are actually 
displayed.

I found this for 
2.0 https://github.com/elasticsearch/elasticsearch/issues/8110, and looks 
like it might solve my problem eventually (not in time for deadlines!), but 
my use case is pretty simple. Is there anything I can do in the current 
version of Elasticsearch to make this work? Am I overlooking something?

Thanks!

-- 
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/cb4d25de-825b-4c2f-9434-86419e5aa3ff%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to