elasticsearch painless最强教程 二

本文是Elasticsearch Painless教程的第二部分,重点讲解了Painless如何支持正则表达式,包括正则匹配、查找操作符、匹配操作符和pattern matcher的使用。由于正则表达式可能影响性能,默认是禁用的,需要在配置文件中开启。文章通过实例展示了在Painless中如何进行文本匹配、提取和转换操作。
摘要由CSDN通过智能技术生成

在上一篇文章elasticsearch painless最强教程中,已经介绍了一些painless的基本例子,喜欢动脑子的同学应该已经看到了plainless或者说是elasticsearch的script强大之处了。我在另外一篇文章如何使用logstash更新已有的elasticsearch记录里面介绍的用logstash更新数据的功能,在简单的需求下,完全可以用elasticsearch的painless script代替。但为什么我们还需要用logstsah,那是因为在elasticsearch中使用正则表达式去匹配,提取数据以完成数据transformation的功能,其代价是非常昂贵的。

painless除了上篇文章提到的基本功能之外,其实还支持正则表达式。但painless却是默认关闭正则表达式功能的。我们先看看官方是怎么说的:

Regexes are disabled by default because they circumvent Painless’s protection against long running and memory hungry scripts. To make matters worse even innocuous looking regexes can have staggering performance and stack depth behavior. They remain an amazing powerful tool but are too scary to enable by default. To enable them yourself set script.painless.regex.enabled: true in elasticsearch.yml. We’d like very much to have a safe alternative implementation that can be enabled by default so check this space for later developments!

可以看到,painless的最高原则是要运行得快,而用正则表达式去执行搜索的动作则会大量的消耗cpu和内存资源,有可能极大的降低painless的效率,所以官方是默认禁止这个功能的(其实在平时的query中,官方也不建议我们使用regex去搜索)。若要打开,我们必须手动的在elasticsearch的配置文件elasticsearch.yml中加入:

script.painless.regex.enabled: 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值