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.