我正在Nifi(v1.9.2)中使用JsonQueryElasticSearch Processor。
查询字符串如下:
{
"query": {
"bool": {
"must": [
{ "match": { "event": "New" }},
{ "match": { "uniqueId": "${unique_id}"}},
{ "match": { "header.schemaVersion": "1.3" }}
]
}
},
"sort" : {
"header.sourceSystemCreationTimestamp" : {"order" : "desc"}
}
}
因为查询中$ {unique_id}流属性的值为空,所以没有给出任何结果。如果我对查询中的值进行硬编码,它将按预期工作。在处理器级别,我确实看到$ {unique_id}流属性的值。
非常感谢您的时间和帮助。
答案 0 :(得分:0)
(我是编写此处理器的开发人员)
我尝试通过执行以下操作来重复该问题:
GenerateFlowFile
-> JsonQueryElasticsearch
。JsonQueryElasticsearch
的查询参数中:{
"query": {
"match": {
"from": "${sender}"
}
},
"aggs": {
"senders": {
"terms": {
"field": "from",
"size": 10
}
}
}
}
所有预期结果均已返回。如果尝试通过流文件内容传递查询,则不能使用表达式语言(${unique_id}
)。这是预期的行为,因为表达式语言不在流文件的内容上评估,而仅在配置属性上评估。