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

时间:2020-04-11 05:31:24

标签: elasticsearch kibana elastic-stack

首先,这对ELK堆栈来说是全新的,因此仍在术语上苦苦挣扎。

我一直在尝试创建一些可视化效果,发现通过JSON scipt合并字段有点挑剔,显然不建议这样做。

例如,我想可视化唯一会话的数量,但是这些会话对于给定的主机名而言是唯一的,因此聚合中的此脚本可以实现这一目标。

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

因此,根据我的研究结果,我应该做的是在GROK解析期间添加另一个Field,以使该字段存在于每个文档中,从而使搜索速度更快。

因此,可以通过以下操作来完成Grok部分:

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

那么,我缺少的是如何更新索引中已经存在的所有条目,以便他们在历史上添加了此字段,并且在也要附加索引的实时系统上实现此目的的最佳方法是什么? / p>

我的Grok当前每天都在创建一个新索引,第二天我就起来了,所以一个静态索引和另一个仍要附加的索引。

谢谢

1 个答案:

答案 0 :(得分:0)

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