如何在弹性搜索中为每小时访问者构建数据

How to structure data in elasticsearch for hourly visitors

我正在为如何在 elasticsearch 中构建我的数据而苦恼。我每小时一个号。

所以它会是这样的:

2018-01-01T03:00:00 - 280

也就是说,凌晨3点有280个访客。我对如何将这些全部放入 elasticsearch 感到困惑。是不是应该都在一个索引里,一个文档做一个长文件?

如果有帮助,我们会把它放在 Kibana 的图表上。

您可以创建包含两个字段的单个索引:datecount。 设文档类型为_doc.

创建一个索引并在其中放入一个文档 _id 作为 1:

PUT test/_doc/1
{
  "date":"2018-01-01T03:00:00",
  "count": 280
}

您可以重复此操作以放入所有要添加的数据。 例如,如果数据类似于:

[ { "_index" : "test", "_type" : "_doc", "_id" : "1", "_score" : 1.0, "_source" : { "date" : "2018-01-01T03:00:00", "count" : 280 } }, { "_index" : "test", "_type" : "_doc", "_id" : "2", "_score" : 1.0, "_source" : { "date" : "2018-02-01T03:00:00", "count" : 1312 } }, { "_index" : "test", "_type" : "_doc", "_id" : "3", "_score" : 1.0, "_source" : { "date" : "2018-03-01T03:00:00", "count" : 124 } }, { "_index" : "test", "_type" : "_doc", "_id" : "5", "_score" : 1.0, "_source" : { "date" : "2018-05-01T03:00:00", "count" : 34 } }, { "_index" : "test", "_type" : "_doc", "_id" : "7", "_score" : 1.0, "_source" : { "date" : "2018-01-01T03:00:00", "count" : 280 } } ]

然后您可以将每月的计数可视化为:

将存储桶添加为:

PS:elasticsearch 默认启用 date_detection,因此您的日期字符串将自动保留为日期类型。

希望这对您有所帮助。