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/8e57316e-2c43-40cc-913e-6f9579fc0410%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.