【问题标题】:Creating new Field in all Documents from two existing Field in that index in ElasticSearch从 ElasticSearch 中该索引中的两个现有字段在所有文档中创建新字段
【发布时间】:2020-04-11 05:31:24
【问题描述】:

首先,对于 ELK 堆栈来说是全新的,因此仍在为术语而苦恼。

我一直在尝试创建一些可视化,发现通过 JSON scipt 合并字段有点挑剔,显然不推荐。

例如,我想可视化唯一会话的数量,但会话仅对给定的主机名是唯一的,因此聚合中的这个脚本实现了这一点。

{
  "script": {
  "source": "doc['hostname.keyword'].value + doc['session_id.keyword'].value",
  "lang": "painless"
  }
}

所以从我的研究来看,我应该做的是在我的 GROK 解析过程中添加另一个字段,以便该字段存在于每个文档中,从而加快搜索速度。

因此,Grok 部分可以通过以下方式完成:

add_field => { "hostname_session_id" => "%{hostname}:%{session_id}" }

所以我缺少的是如何更新索引中已经存在的所有条目,以便他们在历史上添加此字段,以及在索引也被附加的​​实时系统上执行此操作的最佳方法是什么?

我的 Grok 目前每天都会创建一个新索引,而我第二天也起床了,所以一个静态索引和另一个仍在附加的索引。

谢谢

【问题讨论】:

    标签: elasticsearch kibana elastic-stack


    【解决方案1】:

    您可以使用update by query API 更新现有文档,并使用指定如何生成新字段的脚本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-14
      • 1970-01-01
      • 2021-06-15
      • 2016-03-31
      • 1970-01-01
      相关资源
      最近更新 更多