大家知道,用logstash-input-jdbc插件可以定时的从mysql中同步表的数据到elastsicsearch中,但是有一个问题,mysql中有些表中存的是富文本的数据,里面包含一些html标签,如果不做处理直接同步到elasticsearch中,搜索时就可以会搜索出html标签的那些看起来像乱码的数据。
所以我们必须要把内容中的html标签去掉之后再登到elasticsearch中。网上基本上这方面的有用信息很少,具体怎么做呢?那就是用logstash filter来做!添加如下filter即可。
filter { mutate { gsub => [ # 将content字段用正则去掉html标签 "content", "<.*?>|\\t| ", "" ] } }
mutate和gsub是将某个字段用指定的正则替换。正则表达式<.*?>|\\t| 则是匹配所有html标签和\t和 ,将这几种替换为""后再登录到elasticsearch中。