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

标签 elasticsearch kibana elastic-stack

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

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

例如,我想可视化唯一 session 的数量,但是这些 session 对于给定的主机名来说是唯一的,因此该脚本通过聚合来实现。

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

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

因此,可以通过以下操作来完成Grok部分:
add_field => { "hostname_session_id" => "%{hostname}:%{session_id}" }

因此,我缺少的是如何更新索引中已经存在的所有条目,以便它们在历史上添加了该字段,并且在实时系统中添加索引的最佳方法是什么?

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

谢谢

最佳答案

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

关于elasticsearch - 从ElasticSearch中该索引中的两个现有字段在所有文档中创建新字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61152517/

相关文章:

ruby-on-rails - 使用 Elastic Search gem 运行 jruby 应用程序。

带日期数学的 Elasticsearch query_string

elasticsearch - 删除屏蔽插件后,Kibana无法正常工作

elasticsearch - 为什么Kibana不监听5061端口?

amazon-web-services - Logstash Http输入插件

elasticsearch - ElasticSearch-查询以匹配路径的任何部分(path_hierarchy tokenizer)

elasticsearch - 使用Elastic Common Schema配置基于Filebeat提示的自动发现

regex - Kibana 正则表达式不起作用

elasticsearch - 使用user\pass将Logstash请求转发到Elasticsearch

elasticsearch - 通过HTTPS的Filebeat