我有一个elasticsearch索引,一个名为“authority”的字段,它有多个字符串值,我想要最后一个逗号后面的最后一个值?

问题描述 投票:0回答:1

elasticsearch
索引名称为
data1
@authority
字段有时包含多个值或单个值

"@authority": [
"stelar",
"chrish",
"leona",
"micky",
"somany",
"peter",
"nitra"]

我要检索权限名称:

条件1.当它包含多个值时,它应该检索最后一个逗号后面的值

条件 2. 如果它包含单个值,则按原样返回该值 (我想编写一个脚本并显示另一个字段中的值,例如“last_@authority”)。

我的代码但失败了。

我想在我的

elasticsearch
索引中显示last_authority名称。

elasticsearch elastic-stack devtools elk
1个回答
0
投票

您可以像这样使用

ruby
过滤器:

filter {
  ruby {
    code => ‘
      authority = event.get(‘@authority’)
      if authority.is_a? String
        event.set(‘some_field’, authority)
      else
        event.set(‘some_field’, authority.last())
      end
    ‘
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.