How can I use bool query on the result of an aggregation? I want both 
aggregations to independently facet on the whole index, then merge the 
results. I can see how I would use a bool query to limit the set of docs 
I'm aggregating on, but I can't see how I would use it to merge the results 
of two aggregations?

Thanks,

Tim.

On Wednesday, December 18, 2013 4:40:37 PM UTC, kidkid wrote:
>
> You could use bool query and let ElasticSearch do the rest.
>
>
> http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-bool-query.html
>
> On Wednesday, December 18, 2013 3:58:07 PM UTC+7, Tim S wrote:
>>
>> In the example below, I ask elasticsearch for two aggregations (I've 
>> simplified it, it's actually got some nested aggregations in there).
>>
>> {
>>     "aggregations": {
>>         "agg1": {
>>             "terms": {
>>                 "field": "forname"
>>             }
>>         },
>>         "agg2": {
>>             "terms": {
>>                 "field": "surname"
>>             }
>>         }
>>     }
>> }
>>
>> What I get back is two sets of results, i.e. 
>>
>> {
>>     "aggregations" : {
>>         "agg1" : {
>>             "buckets" : [ {
>>                 "key" : "john",
>>                 "doc_count" : 1
>>             }, {
>>                 "key" : "bob",
>>                 "doc_count" : 4
>>             } ]
>>         },
>>         "agg2" : {
>>             "buckets" : [ {
>>                 "key" : "smith",
>>                 "doc_count" : 3
>>             }, {
>>                 "key" : "jones",
>>                 "doc_count" : 2
>>             } ]
>>         }
>>     }
>> }
>>
>> What I'd like to get back is one set of results. I.e. a list of terms 
>> appearing in either of the fields, with the counts summed across both, e.g.
>>
>> {
>>     "aggregations" : {
>>         "agg1 OR agg2" : {
>>             "buckets" : [ {
>>                 "key" : "john",
>>                 "doc_count" : 1
>>             }, {
>>                 "key" : "bob",
>>                 "doc_count" : 4
>>             }, {
>>                 "key" : "smith",
>>                 "doc_count" : 3
>>             }, {
>>                 "key" : "jones",
>>                 "doc_count" : 2
>>             } ]
>>         }
>>     }
>> }
>>
>> Is there any way of doing this? I could request them and merge them in my 
>> own code, but if there's a built in way then I'd rather use that.
>>
>> Thanks,
>>
>> Tim.
>>
>

-- 
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/b9c82b3b-c8a3-4783-96d8-b4d07809189f%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to