【发布时间】:2018-12-17 18:19:48
【问题描述】:
我想计算一天内每个产品的每个 IP 访问次数。
一个索引(nginx-access-log)中有三个参数:
- 时间戳
- clientip
- product_id
我知道date_histogram可以参考https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-datehistogram-aggregation.html。
但我不知道如何组合 aggs 来构建脚本。
更新:
我使用下面的脚本来搜索
GET log-nginx_access*/_search
{
"aggs": {
"by_day": {
"date_histogram": {
"field": "timestamp",
"interval": "1d",
"time_zone": "Asia/Shanghai",
"min_doc_count": 1
},
"aggs": {
"by_product": {
"terms": {
"field": "uri_args.product_id",
"size": 100
}
},
"aggs": {
"by_ip": {
"terms": {
"field": "clientip"
}
}
}
}
}
}
}
出现错误:
{
"error": {
"root_cause": [
{
"type": "unknown_named_object_exception",
"reason": "Unknown BaseAggregationBuilder [by_ip]",
"line": 18,
"col": 20
}
],
"type": "unknown_named_object_exception",
"reason": "Unknown BaseAggregationBuilder [by_ip]",
"line": 18,
"col": 20
},
"status": 400
}
【问题讨论】:
标签: elasticsearch elasticsearch-aggregation