# Aggregations issue

**URL:** <https://discuss.elastic.co/t/aggregations-issue/28654>\
**Category:** Elasticsearch\
**Created:** [September 4, 2015, 6:52am UTC](https://discuss.elastic.co/t/aggregations-issue/28654 "2015-09-04T06:52:44Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![Cristi\_Boariu](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/cristi_boariu/32/4367_2.png) [@Cristi\_Boariu](https://discuss.elastic.co/u/Cristi_Boariu)\
**Post date:** [September 4, 2015, 6:52am UTC](https://discuss.elastic.co/t/aggregations-issue/28654/1 "2015-09-04T06:52:44Z")

</div>

I am using ES 1.5.2 both on client and server. Following query works fine when run from REST call manually:

```
    {
     "size" : 0,
  "aggregations" : {
    "favorite" : {
      "filter" : {
        "and" : {
          "filters" : [ {
            "term" : {
              "favorites.details" : 52891
            }
          }, {
            "term" : {
              "_type" : "favorites"
            }
          } ]
        }
      }
    }
  }
}

```

but failes when run from JAVA api with error:

```
nested: SearchParseException[[app16389900_at_heroku_com_bloom-v2][0]: from[-1],size[0]: Parse Failure [No parser for element [aggregations]]]; }]

```

Can anybody help pleasE?

**UPDATE** : Java code:

```
 SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();

    List<String> indexTypes = Lists.newArrayList();

    for (String action : actions) {
      FilterAggregationBuilder aggr = null;

      if (RATING_ACTION.equals(action)) {
        TermFilterBuilder term =
          FilterBuilders.termFilter(INDEX_TYPES.get(action)
                                    + ".details.user_id", userId);

        aggr = new FilterAggregationBuilder(action).filter(term);

        indexTypes.add(INDEX_TYPES.get(action));
      } else if (COMMENTS_ACTION.equals(action)) {
        TermFilterBuilder term = FilterBuilders.termFilter(COMMENTS_TYPE
                                   + ".user_id", userId);

        aggr = new FilterAggregationBuilder(action).filter(term);

        indexTypes.add(COMMENTS_TYPE);
      } else if (CREATED_ACTION.equals(action)) {
        TermFilterBuilder term =
          FilterBuilders.termFilter("activities.created_by", userId);

        aggr = new FilterAggregationBuilder(action).filter(term);

        indexTypes.add(ACTIVITIES_TYPE);
      } else {
        TermFilterBuilder term =
          FilterBuilders.termFilter(INDEX_TYPES.get(action) + ".details",
                                    userId);
        TermFilterBuilder type = FilterBuilders.termFilter("_type",
                                   INDEX_TYPES.get(action));
        AndFilterBuilder filter = FilterBuilders.andFilter(term, type);

        aggr = new FilterAggregationBuilder(action).filter(filter);

        indexTypes.add(INDEX_TYPES.get(action));
      }

      searchSourceBuilder.aggregation(aggr);
    }

    searchSourceBuilder.size(0);

    Search search = new Search.Builder(searchSourceBuilder.toString()).addIndex(
                        INDEX).setSearchType(SearchType.COUNT).addType(
                        indexTypes).build();

    JestResult result = client.execute(search);
```

---

<div class="post-metadata">

**Author:** ![remram](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/remram/32/4077_2.png) [@remram](https://discuss.elastic.co/u/remram)\
**Post date:** [September 4, 2015, 7:38am UTC](https://discuss.elastic.co/t/aggregations-issue/28654/2 "2015-09-04T07:38:29Z")

</div>

Where is the path for nested filed? if you use nested fields, you need to define the path of it!  
[https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-nested-filter.html](https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-nested-filter.html)

---

<div class="post-metadata">

**Author:** ![colings86](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/colings86/32/44960_2.png) [@colings86](https://discuss.elastic.co/u/colings86)\
**Post date:** [September 4, 2015, 7:48am UTC](https://discuss.elastic.co/t/aggregations-issue/28654/3 "2015-09-04T07:48:49Z")

</div>

Can you show how you are calling this from the JAVA API?

---

<div class="post-metadata">

**Author:** ![Cristi\_Boariu](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/cristi_boariu/32/4367_2.png) [@Cristi\_Boariu](https://discuss.elastic.co/u/Cristi_Boariu)\
**Post date:** [September 4, 2015, 9:26am UTC](https://discuss.elastic.co/t/aggregations-issue/28654/4 "2015-09-04T09:26:28Z")

</div>

Added java code.

---

<div class="post-metadata">

**Author:** ![colings86](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/colings86/32/44960_2.png) [@colings86](https://discuss.elastic.co/u/colings86)\
**Post date:** [September 4, 2015, 11:06am UTC](https://discuss.elastic.co/t/aggregations-issue/28654/5 "2015-09-04T11:06:03Z")

</div>

I can't see anything obvious from the code (although I don;t have any experience with JEST only with the Elasticsearch Java client). Would you be able to paste (maybe into a gist if the output is long) the output of `searchSourceBuilder.toString()` just before you create the `search` variable? Also, see if you can run the output of this call using cURL or similar.

---

<div class="post-metadata">

**Author:** ![Cristi\_Boariu](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/cristi_boariu/32/4367_2.png) [@Cristi\_Boariu](https://discuss.elastic.co/u/Cristi_Boariu)\
**Post date:** [September 7, 2015, 4:12pm UTC](https://discuss.elastic.co/t/aggregations-issue/28654/6 "2015-09-07T16:12:01Z")

</div>

@colings86 I have added some logging so here's the output of searchSourceBuilder.toString():

--SEARCH SOURCE BUILDER:

```
{
  "size" : 0,
  "aggregations" : {
    "favorite" : {
      "filter" : {
        "and" : {
          "filters" : [ {
            "term" : {
              "favorites.details" : 50391
            }
          }, {
            "term" : {
              "_type" : "favorites"
            }
          } ]
        }
      }
    }
  }
}

```

and the error is the same I posted in original post. As I said, if I try with curl or Postman it works so its something on java side not knowing to parse the source because of aggregations....

---

<div class="post-metadata">

**Author:** ![colings86](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/colings86/32/44960_2.png) [@colings86](https://discuss.elastic.co/u/colings86)\
**Post date:** [September 8, 2015, 7:22am UTC](https://discuss.elastic.co/t/aggregations-issue/28654/7 "2015-09-08T07:22:18Z")

</div>

I can't see anything wrong with that JSON. Maybe there is something peculiar about how JEST is creating the search request. I can only suggest either using something like wireshark to intercept the actual HTTP request that is sent to the server and see how it is different (if it is different), or maybe try this in the [Elasticsearch Java Client](https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/index.html).

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [July 5, 2017, 11:51pm UTC](https://discuss.elastic.co/t/aggregations-issue/28654/8 "2017-07-05T23:51:44Z")

</div>


