我正在尝试执行以下查询。我在文档 STATUS 中有 3 个属性 - 可以是“FAIL”、“PASS”、“INVALID” DATE - 包含日期和时间。
我想要每个状态的每日计数
例如:日期:11-09-2016,状态:失败,计数:120
日期:11-09-2016,状态:通过,计数:150
我想要最近一个月、两个月等的数据
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\" : \"day\","
+ "\"format\" : \"yyyy-MM-dd\" },"
+ "\"aggs\" : "
+ "{\"grades_count\" : { \"value_count\" : { \"field\" : \"STATUS\" } }}}}}}}");
此代码为我提供了每个状态的每日计数,但适用于所有记录。并想添加范围过滤器,如下所示。
+"\"query\": {"
+" \"filtered\": {"
+" \"filter\": {"
+ "\"range\": { \"DTCREATED\": { \"gte\": \"now-90d/d\" }}"
+"}}}}}");
但我无法合并这两个查询的内容。我已经尽力了。任何帮助是极大的赞赏。