繁体   English   中英

使用数字字段作为Kibana date_histogram聚合中的日期

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM