Elasticsearch:不同领域的聚合

Elasticsearch: Aggregation on different fields

我正在使用一个特定的软件将数据索引到 Elasticsearch,但它创建的文档如下:

{
  contact: +31644488857,
  name: "Jan",
  address: "street 3"
}

{
   person: {
       phone: +31688844499,
       address: "street 5"
   }
   name: "Piet"
}

现在我正在寻找一种在 kibana 中创建 table 的方法,它结合了 phone 数字 ,但将它们视为单个字段.所以我不想为多个字段创建不同的 table 或多个列。我只想创建一个 table 来显示所有 phone 数字,无论它来自哪个字段。

有没有办法做到这一点?我希望我可以使用脚本字段,但似乎我无法在脚本字段上聚合...

您当然可以在 Kibana 中为 (keyword) 个字符串创建一个脚本字段,您以后可以聚合这些字符串。

只需转到 "Management > Index Patterns",选择相关的索引模式,创建一个新的字符串类型的脚本字段并使用以下脚本:

[doc['contact.keyword'].value, doc['person.phone.keyword'].value]

这将创建一个新的脚本字段,其中包含一个数组,其元素将是您的 phone 数字字段。然后,您可以在“发现”视图或“可视化”视图中的术语聚合中可视化该字段。