当前位置:首页 > ES > 正文内容

logstash过滤器--mutate

phpmianshi1年前 (2019-07-11)ES46

概念


filters/mutate 插件是 Logstash 另一个重要插件。它提供了丰富的基础类型数据处理能力。包括类型转换,字符串处理和字段处理等。


Plugin version: v3.5.0

执行顺序

coerce
rename
update
replace
convert
gsub
uppercase
capitalize
lowercase
strip
remove
split
join
merge
copy

也可以指定多个 mutate块来改变执行顺序

filter {
    mutate {
        split => ["hostname", "."]
        add_field => { "shortHostname" => "%{hostname[0]}" }
    }

    mutate {
        rename => ["shortHostname", "hostname" ]
    }
   }


示例

1、转变参数类型 convert

mutate {
	convert => {
     	 "name" => "string"
    	 "age" => "integer"
    	 "state" => "boolean"
    } 
}

2、复制字段 copy
复制一个已存在的字段到另外一个字段,已存在的字段会被重写到一个新的字段,新的字段不需要单独添加

mutate {
	copy => { "source_field" => "dest_field" }
}

3、正则表达式替换 gsub
这里只针对string类型字段

mutate {
	gsub => [
	#把name字段中的“a”替换为“p”
	"name","a","p"
	#斜线都替换成下划线
        "fieldname", "/", "_",
        #正则替换
        "fieldname2", "[\\?#-]", "."
        ]
}

4、大小写转换 lowercase&uppercase

mutate {
	#lowercase => [ "name" ]
	uppercase => [ "name" ]
}

5、字段重命名 rename

mutate {
	 rename => {"name" => "name3"}
}

6、除去字段值前后空格 strip

mutate {
	strip => ["name"]
}

7、更新字段值 update

mutate {
	update => {"name" => "li"}
}

8、修改字段 replace
作用和 update 类似,但是当字段不存在的时候,它会起到 add_field 参数一样的效果,自动添加新的字段。
9、移除字段 remove_field

mutate {
	remove_field => ["name"]
}

10、增加字段 add_field

mutate {
	add_field => {"testField1" => "0"}
	add_field => {"testField2" => "%{name}"} #引用name中的值
}


其他参考官方文档:

https://www.elastic.co/guide/en/logstash/current/plugins-filters-mutate.html#plugins-filters-mutate-merge

版权声明:本文由PHP面试资料网发布,如需转载请注明出处。
分享给朋友:

相关文章

elasticsearch模糊查询match match_phrase wildcard regexp prefix的区别

1.match查询会先对搜索词进行分词,比如“白雪公主和苹果”,会分成“白雪”“公主”“苹果”。含有相关内容的字段,都会被检索出来。2.match_phrase查询match_phrase与slop一...

elasticsearch中mapping全解实战

Mapping简介#mapping 是用来定义文档及其字段的存储方式、索引方式的手段,例如利用mapping 来定义以下内容:哪些字段需要被定义为全文检索类型哪些字段包含number、dat...

elasticsearch中query和filter区别

区别在进行query的时候,除了完成匹配的过程,我们实际上在问“这个结果到底有多匹配我们的搜索关键词”。在所有的返回结果的后面都会有一个_score字段表示这个结果的匹配程度,也就是相关性。相关性越高...

elasticsearch用于html去标签化搜索

场景elasticsearch用于html去标签化搜索:即在Index的时候忽略html tag,同时又存储了完整的html,在使用的时候可以正常读出来。示例假设我们给content字段自定义anal...

elasticsearch中倒排索引详解

elasticsearch中倒排索引详解

概念Elasticsearch使用一种叫做倒排索引(inverted index)的结构来做快速的全文搜索。倒排索引由在文档中出现的唯一的单词列 表,以及对于每个单词在文档中的位置组成。示例我们有两个...

elasticsearch中动态模板全解实战

动态模板在我们最开始使用ES的时候,可能还不太了解mapping,也没有添加过mapping为什么我们还是能够正常的添加文档。那是因为ES可以动态映射,添加文档的时候遇到没有的字段,可以动态的添加到m...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。