2017-06-05 54 views
0

我试图在Elasticsearch中显示PHP中的聚合结果。我希望我的输出是这样的:在Elasticsearch中显示PHP中的聚合结果

日期:多条记录怎么有日期

20110105:5个记录

20120501:2条记录

20120602:15条

这是我到目前为止:

$json = '{"aggs": { "group_by_date": { "terms": { "field": "arrivalDate" } } } }'; 

     $params = [ 
      'index' => 'pickups', 
      'type' => 'external', 
      'body' => $json 
      ]; 

$results = $es->search($params); 

如何显示每个日期的记录数?

回答

0

您应该使用date histogram aggregation为您的目的。 您的查询将看起来像 -

{ 
    "query": #if any, 
    "aggs": { 
     "date": { 
      "date_histogram": { 
       "field": "fieldName", 
       "interval": "day", 
       "min_doc_count": 1 #if you need key with any minimum doc count 
      } 
     } 
    }, 
    "size": 0 
} 

要正确运行此查询,您的日期字段类型应该是date。否则,你会得到一个错误。

希望这有助于在这里

+0

我假设你的字段类型是“日期” –