从 ElasticSearch 中该索引中的两个现有字段在所有文档中创建新字段

Creating new Field in all Documents from two existing Field in that index in ElasticSearch

首先,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 目前每天创建一个新索引,我第二天也起床了,所以一个静态索引和另一个仍在附加的索引。

谢谢

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