![](/img/trans.png)
[英]How to access the date_histogram key field in the child aggregation in elasticsearch?
[英]Use number field as date in Kibana date_histogram aggregation
我正在尝试使用Kibana中的“可视化”功能来绘制每月date_histogram图,该图统计系统中消息的数量。 消息类型具有一个sent_at
字段,该字段存储为自时期以来的number
。 尽管我可以通过Elasticsearch查询做到这一点
POST /_all/message/_search?size=0
{
"aggs" : {
"monthly_message" : {
"date_histogram" : {
"field" : "sent_at",
"interval" : "month"
}
}
}
}
我在Kibana中遇到一个问题,说“ No Compatible Fields: The "myindex" index pattern does not contain any of the following field types: date
有没有办法让Kibana使用number
字段作为日期?
据我所知,Kibana将使用索引映射来查找日期字段,如果找不到日期字段,则Kibana将无法从其他数字字段中推断出一个。
您可以做的是向映射中添加另一个名为sent_at_date
字段,然后使用按查询更新的API,以便将sent_at
字段复制到该新字段,最后在Kibana中重新创建索引模式。
它基本上是这样的:
# 1. add a new field to your mapping
PUT myindex/_mapping/message
{
"properties": {
"sent_at_date": {
"type": "date"
}
}
}
# 2. update all your documents
POST myindex/_update_by_query
{
"script": {
"source": "ctx._source.sent_at_date = ctx._source.sent_at"
}
}
最后,在Kibana中重新创建索引模式。 您应该看到一个可以在Kibana中使用的类型为date
名为sent_at_date
的新字段。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.