elasticsearch 如果为空,请删除数组字段
如果数组字段为空,请建议如何删除?我尝试了以下配置:elasticsearch 如果为空,请删除数组字段,elasticsearch,logstash,elasticsearch,Logstash,如果数组字段为空,请建议如何删除?我尝试了以下配置: if [tags] == [] { mutate { remove_field => ["tags"] } } But getting logstash exception: [2018-03-01T15:07:56,000][FATAL][logstash.runner ] The given configuration is invalid. Reason: Failed to parse right-hand side of c
if [tags] == [] {
mutate {
remove_field => ["tags"]
}
}
But getting logstash exception:
[2018-03-01T15:07:56,000][FATAL][logstash.runner ] The given configuration is invalid. Reason: Failed to parse right-hand side of conditional [str]pipeline:31:8:[tags] == []
我不知道如何从ruby过滤器中删除字段,因此当
标记
数组为空时,我将设置另一个字段,并使用来知道何时删除字段标记
ruby {
code => "event.set('[is_tags_empty]', 'true') if event.get('[tags]').length == 0"
}
if [is_tags_empty] {
mutate {
remove_field => ["tags","is_tags_empty"]
}
}
这一个对我有用:
ruby {
code => "if event.get('tags').length == 0 then event.remove('tags') end"
}
检查数组是否为空,以及数组是否为空
if [tags] and !([tags][0]) {
mutate {
remove_field => ["tags"]
}
}
在Logstash 7.1上测试我需要在Logstash中测试。链接建议在elasticsearch中执行。请建议我认为您必须使用ruby过滤器,我还没有找到其他方法。使用ruby代码,我无法检查数组是否为空并将其删除。如果发现一个方法为空?在ruby中,但不使用logstash ruby筛选器。请帮我翻译ruby代码片段。]成功了。。!非常感谢。:)什么是event.set event.get过来?我认为它的纯ruby程序在ruby过滤器的代码块中用双引号包装。我说的对吗?如果event.get(“[tags]”),那么这个
event.set(“[is_tags\u empty]”,true')。length==0
是ruby程序event.get(“[tags]”)
从事件中检索字段tags
,event.set(“[is\u tags\u empty]”,'true')
将事件中的字段is\u tags\u empty
设置为值true
。有关事件的更多信息,请参阅