当前位置: 首页 > 知识库问答 >
问题:

用ElasticSearch术语聚合动态创建的桶构建Kibana直方图

通煜祺
2023-03-14

我希望能够结合Kibana术语图(能够基于特定属性值的唯一性创建bucket)和直方图(基于查询将数据分离为bucket,然后基于时间说明日期)的功能。

总的来说,我想创建一个直方图,但我只想根据一个查询的结果创建直方图,而不是像Kibana演示应用程序中那样创建多个查询。相反,我希望每个bucket都是根据特定字段的唯一值动态创建的。例如,考虑以下查询返回的数据:

{"myValueType": "New York"}
{"myValueType": "New York"}
{"myValueType": "New York"}
{"myValueType": "San Francisco"}
{"myValueType": "San Francisco"}

还假设每个记录都有一个时间戳字段,用于按日期分隔直方图数据。对于那个特定的日期,我希望数据以计数3的方式传输到纽约存储桶中,以计数2的方式传输到旧金山存储桶中。然而,对于我的单链接查询,我只能显示5的计数。配置柱状图时,我可以指定一个用于时间戳的字段,但不能从中创建存储桶。我可以发送一个字段来计算一个total/min/max/mean,但这个字段必须是数字,所以这也不是解决方案。

如果我使用一个术语图来创建饼图或条形图,我确实能够根据指定字段(在本例中为“myValueType”)的唯一值将数据分为多个存储桶,但这将始终汇总数据,而不是按时间戳拆分数据。虽然这是一个很好的信息,但它并不理想,因为我无法检测数据中的趋势。

我正在寻找一种解决方案,它可以实现以下功能之一:

  • 让我在Kibana仪表板中动态创建查询,以在直方图中创建“bucket”
  • 请允许我运行ElasticSearch术语聚合,根据“myValueType”将我的数据分割成多个存储桶,并将这些结果集成到我的直方图中
  • 自定义我的仪表板的JSON,但在我看来这是不可能的
  • 创建我自己的自定义面板,但这并不可取
  • 在Kibana中链接Kibana“TopN”查询。实际上,这已经被证明是解决我的问题的一种方法,因为TopN查询会根据指定的字段名为每个唯一的值/术语动态创建一个查询。然而,问题是,我只能将一种颜色链接到这个TopN查询,每个唯一的术语将被放置在一个使用不同颜色的桶中。理想情况下,直方图中的每个桶都会有一个完全不同的颜色。想象一下,随着存储桶数量的增加,区分独特的术语将变得多么困难
  • 如果所有这些都失败了,我会从搜索字段中对每个唯一值进行一次查询。这将允许我每个bucket有一个唯一的颜色,但随着“myValueType”字段中唯一术语的数量发生变化,我需要不断添加/删除Kibana中的查询,这可能会变得非常混乱

我肯定这里有我错过的东西。请帮帮我。非常感谢。

一个高度相关的SOF问题:在Kibana中使用直方图刻面或其卷曲响应是否可能

共有2个答案

景国兴
2023-03-14

也许有点晚,但在最新的测试版中实际上是可能的。

kibana 4 beta 3安装下载

戈博易
2023-03-14

这将是一个伟大的功能。看起来Kibana4将支持它,但似乎没有比这更多的信息了。

供参考:https://github.com/elasticsearch/kibana/issues/1249

 类似资料:
  • 以下是数据集的快照: 我想获得员工名单以及employeeStatus和employeeAddr。 所以我在employeeId上使用术语聚合,然后使用employeeStatus和employeeAddr的子聚合来获得这些详细信息。下面的查询正确返回结果。 现在我只想要永久身份的员工。所以我正在应用过滤器聚合。 现在的问题是雇员地址聚合没有为雇员地址返回存储桶,因为记录2在聚合完成之前就被过滤掉

  • 问题内容: 我正在尝试使用以下查询对以下数据进行elasticsearch来执行术语聚合,输出将名称分解为标记(请参见下面的输出)。因此,我尝试将os_name映射为multi_field,但现在无法通过它查询。是否可以有没有令牌的索引?例如“ Fedora Core”? 查询: 数据: 输出: 映射: 问题答案: 实际上,您应该像这样更改映射 并且您的aggs应该更改为:

  • 在UI我需要显示自动完成建议,它给我包含搜索术语的术语。例如,如果我搜索,我可能会得到、、、、等建议。搜索框用于搜索/过滤正在使用/显示为城市聚合术语的文件。此字段类型为数组,因此一个文档可以有多个城市。自动建议应仅包含可用/结果文档中的城市。 我知道使用过滤功能的术语聚合与适当的正则表达式。https://www.elastic.co/guide/en/elasticsearch/referen

  • 此处为elasticsearch新用户,但存在术语聚合问题。我为187份文档编制了索引,其中包含“名称”、“主机”、“风险”等字段。字段风险有4个唯一值(“关键”、“高”、“中”、“低”、“信息”),我正在运行这样的术语聚合: 我希望得到一个结果,说明我有x个临界值,x个高值等等。问题是,我没有得到返回的桶。 我的Elasticsearch版本是7.12.0有什么想法吗 > 编辑:这是映射: 以下

  • 我们目前正在开发一个多语言文档CMS。因此,我们有翻译成不同语言的文件。 对于使用Elasticsearch进行搜索,我们目前使用每种语言(德语、英语、法语……)一个索引,其中同一文档的所有翻译共享相同的ID。 当用户搜索特定术语时,我们希望在所有语言中搜索,但只返回不同ID的列表。据我所知,只有使用以下术语聚合才能做到这一点: 这很好,但是作为弹性搜索文档https://www.elastic.

  • 我想根据top hits聚合中第一个元素所拥有的属性,从terms聚合中订购Bucket。 我的尽力而为查询如下(有语法错误): 有人知道如何做到这一点吗? 例子: 按“a”分组,按“id”(desc)排序存储桶,并按“b”(desc)排序最热门的内容,将给出: