# Elasticsearch Query using JSON

**URL:** <https://discuss.elastic.co/t/elasticsearch-query-using-json/68513>\
**Category:** Elasticsearch\
**Created:** [December 9, 2016, 6:02am UTC](https://discuss.elastic.co/t/elasticsearch-query-using-json/68513 "2016-12-09T06:02:07Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![aniketpatil](https://avatars.discourse-cdn.com/v4/letter/a/85f322/32.png) [@aniketpatil](https://discuss.elastic.co/u/aniketpatil)\
**Post date:** [December 9, 2016, 6:02am UTC](https://discuss.elastic.co/t/elasticsearch-query-using-json/68513/1 "2016-12-09T06:02:07Z")

</div>

I have written code to extract data from elasticsearch using Java Client. Code is as below.

```
SearchResponse responseOutput = client.prepareSearch(ConstantsValue.indexName)
.setTypes(ConstantsValue._Type)
.setFetchSource(new String[]{"STATUS", "DTCREATED"}, null)
.setQuery(
QueryBuilders.filteredQuery(QueryBuilders.matchAllQuery(),

FilterBuilders.rangeFilter("DTCREATED").from(fromDate).to(toDate))).
addAggregation(AggregationBuilders.terms("STATUS_AGG").field("STATUS")
.subAggregation(AggregationBuilders.dateHistogram("DATE_AGG").field("DTCREATED").interval(interval).format(dateFormat))
	)
	.addSort("DTCREATED", SortOrder.ASC)
	.get();

```

This query returns me count for status day wise within particular date range in ascending date order.

But now I want to fire same query using json String. I tried my best to written json based query.

```
//Query to elasticsearch 
SearchRequest requestQuery =
Requests.searchRequest(ConstantsValue.indexName)
.types(ConstantsValue._Type)
.source("{size:999999,"
+ "\"_source\" : "
+ "[\"DTCREATED\", \"STATUS\"]"
+ ",\"aggs\": "
+ "{\"group_by_STATUS\": {\"terms\": {\"field\": \"STATUS\"},"
+ "\"aggs\" : "
+ "{\"group_by_DATE\" : {\"date_histogram\" : "
+ "{\"field\" : \"DTCREATED\", \"interval\" : \"month\","
+ "\"format\" : \"yyyy-MM-dd\" },"
+ "\"aggs\" : "
+ "{\"grades_count\" : { \"value_count\" : { \"field\" : \"STATUS\" } }}}}}}}");

```

Now how can I add date filter and dates in ascending order condition in this JSON query. Date field contains both date and time. Any help is greatly appreciated.

---

<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:** [January 6, 2017, 6:02am UTC](https://discuss.elastic.co/t/elasticsearch-query-using-json/68513/2 "2017-01-06T06:02:10Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
