You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NiFi中QueryRecord如何用RPATH对一级属性做正则匹配过滤?

在NiFi中处理一级属性的正则过滤方案

针对你提供的JSON数组格式FlowFile,以下两种方法可以实现一级属性的正则过滤:

方法1:使用Record Path表达式(适用于QueryRecord的Record Path模式、ConvertRecord等处理器)

直接通过Record Path定位数组元素并过滤:

*[name matchesRegex '<你的正则表达式>'].(name, id)
  • * 匹配JSON数组中的每一个对象元素
  • [name matchesRegex 'xxx'] 过滤出name属性匹配正则的元素
  • .(name, id) 指定返回的字段(可选,若需要返回全部属性可省略)

比如要匹配name以abc开头的记录,正则写为^abc.*,完整表达式:

*[name matchesRegex '^abc.*'].(name, id)

方法2:使用SQL查询(适用于QueryRecord的SQL模式)

简化写法(推荐)

QueryRecord会自动将JSON数组拆分为单条记录,直接用字段名结合REGEXP_MATCH函数即可:

select name, id from FLOWFILE where REGEXP_MATCH(name, '<你的正则表达式>')

强制使用RPATH的写法

如果必须用RPATH,需正确定位到数组元素的属性:

select name, id from FLOWFILE where RPATH(FLOWFILE, '*/name[matchesRegex(., "<你的正则表达式>")]') is not null

注意事项

  • 正则表达式需遵循Java正则语法,特殊字符(如\)需要双重转义,比如匹配点号要写\\.
  • 确保处理器已配置正确的JSON记录读取器(如JsonTreeReader),能正确解析一级属性

内容的提问来源于stack exchange,提问作者Hardik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 01:05:08