How to print full elasticsearch request for debugging in java

I use

ElasticSearchTemplate().queryForPage(SearchQuery, CLASS) 

How to print a full json request?

I manage to print only the filter by doing:

 searchQuery.getFilter().toString() 

But fails to do the same:

  searchQuery.getAggregations().toString(); 

I would like to print in the console something like:

  "aggs": { "agg1": { "terms": { "field": "basket_id_1", "size": 0 }, "aggs": { "basket_id_2": { "terms": { "field": "basket_id_2", "size": 0 }, "aggs": { "basket_id_3": { "terms": { "field": "basket_id_3", "size": 0 } } } } } } } 
+5
source share
2 answers

This is what I started using to do the same.

 { "top_agg": { "terms": { "field": "id", "size": 100 }, "aggregations": { "parent": { "nested": { "path": "transactions" }, "aggregations": { "totals": { "filter": { "terms": { "transactions.type": [ "ttype" ] } }, "total_events": { "cardinality": { "field": "parent.field" } } } } } } } } 

 NativeSearchQuery query = queryBuilder.build(); if (query.getQuery() != null) { log.debug(query.getQuery().toString()); } if (query.getAggregations() != null) { try { XContentBuilder builder = XContentFactory.contentBuilder(XContentType.JSON); builder.startObject(); for (AbstractAggregationBuilder subAgg : query.getAggregations()) { subAgg.toXContent(builder, ToXContent.EMPTY_PARAMS); } builder.endObject(); log.debug(builder.string()); } catch (IOException e) { log.debug("Error parsing aggs"); } } 
+2
source

Could you use SearchResponse.getAggregations (). asList ()?

0
source

Source: https://habr.com/ru/post/1208870/


All Articles