更新获取请求以在nifi中进行弹性搜索

时间:2018-08-09 06:11:31

标签: apache-nifi

我正在尝试使用NIFI中的JSONelastisearchprocessor在弹性搜索索引上命中一个get请求。 现在,对于每个流文件,我都有一些传入的属性,基于此,我需要生成不同的get请求并将响应存储在某个地方。

我正在使用的处理器列表如下:

  1. Getfile(读取JSON文件)
  2. 评估JSON路径(要提取我要在每个get请求中使用的属性,在这种情况下为PROC_INST_ID_)
  3. JSON查询弹性搜索(使用下面的命中请求)
  4. 用于存储响应的PUTfile

请求正文

{
  "query": {
    "nested": {
      "path": "los",
      "query": {
        "bool": {
          "must": [
            { "match": { "los.${proc_ins_id}":"784525" }},
            { "match": { "los._source.cibilPermission.VALUE_":"1" }}
          ]
        }
      }
    }
  }
}

我看不到正在生成请求,也没有得到任何响应,相反,我只获得proc_ins_id的值作为putfile中的响应。有人可以建议一些合适的方法吗?

还附有相关的屏幕截图以供参考。

NIfi_fow evaluatejson

1 个答案:

答案 0 :(得分:1)

我假设您在Query的{​​{1}}属性中提供请求正文。在这种情况下,应将JsonQueryElasticSearch中的Destination属性设置为flowfile-attribute,因为如果将其设置为EvaluateJsonPath并且flowfile-content属性已配置为实际查询,JsonQueryElasticSearch甚至不会读取流文件的内容。

还将Queryhits连接到两个不同的处理器,因为如果将它们连接到同一处理器,则会得到original流文件,该文件在original处更新EvaluateJsonPath中配置的目录。通常,除非需要,否则人们会自动终止PutFile关系。您可能还需要配置original关系,因为聚合结果将发送到该关系。