是否有可能将一列拆分为几个单独的字段? 例如,我有一些带有整数值的列,我想根据这一列创建几个字段:
1. 0-10
2. 11-20
3. 21-
此外,我想计算每个日期以上每个列的记录。
应该如此:
date | 0-10 | 11-20 | 21-
-------------------------------
2016-10-04 | 5 | 10 | 20
2016-10-05 | 7 | 15 | 33
...
我试图使用带有elasticsearch插件的Kibana和Jasper Report工具来做这件事,我只有这样的事情:
date | range | count
---------------------------
2016-10-04 | 0-10 | 5
2016-10-04 | 11-20 | 10
2016-10-04 | 21- | 20
2016-10-05 | 0-10 | 7
2016-10-05 | 11-20 | 15
2016-10-05 | 21- | 33
被修改 我正在尝试这个:
{
"size": 0,
"query": {
"filtered": {
"query": {
"query_string": {
"query": "*",
"analyze_wildcard": true
}
},
"filter": {
"bool": {
"must": [
{
"range": {
"dateTime": {
"gte": 1445074439703,
"lte": 1476696839703,
"format": "epoch_millis"
}
}
}
],
"must_not": []
}
}
}
},
"aggs": {
"2": {
"date_histogram": {
"field": "dateTime",
"interval": "1d",
"time_zone": "Europe/Berlin",
"min_doc_count": 1,
"extended_bounds": {
"min": 1445074439703,
"max": 1476696839703
}
},
"aggs": {
"3": {
"range": {
"field": "milisecElapsed",
"ranges": [
{
"from": 0,
"to": 200
},
{
"from": 200,
"to": 990
},
{
"from": 990
},
{
"from": 200
},
{
"from": 0
}
],
"keyed": true
}
}
}
}
}
}
答案 0 :(得分:0)
查看Date Histogram Aggregations和Range Aggregations的Elasticsearch文档,我认为您可以将范围聚合嵌套在每日直方图中。像这样:
{
"aggs": {
"by_day": {
"date_histogram": {
"field": "date",
"interval": "day"
},
"aggs": {
"integer_ranges": {
"range": {
"field": "your_integer_column_name"
"ranges": [
{ "to": 10,
{ "from": 11, "to": 20 }
{ "from": 21 }
]
}
}
}
}
}
}
这应该返回一个包含指定范围的嵌套文档计数的天数列表。
由于我不知道整数属性名称的名称,因此您需要将your_integer_column_name
替换为文档中的ES属性。
希望没有任何遗漏的括号。
让我知道这是否让你更接近你的想法:)