JsonQueryElasticSearch Процессор в Нифи - PullRequest
1 голос
/ 23 мая 2019

Я работаю с процессором JsonQueryElasticSearch в Nifi (v1.9.2).

Строка запроса следующая:

{
     "query": {
         "bool": {
            "must": [
                { "match":       { "event": "New" }},
                { "match":       { "uniqueId":  "${unique_id}"}},
                { "match":       { "header.schemaVersion": "1.3" }}
            ]
        }
    },
    "sort" : {
        "header.sourceSystemCreationTimestamp" : {"order" : "desc"}
    }
}

Это не дает мне никакого результата, так как значение атрибута потока $ {unique_id} в запросе пусто. Если я жестко закодирую значение в запросе, оно будет работать как положено. На уровне процессора я вижу значение атрибута потока $ {unique_id}.

Большое спасибо за ваше время и помощь.

1 Ответ

0 голосов
/ 28 мая 2019

(я разработчик, который написал этот процессор)

Я попытался продублировать проблему, выполнив следующее:

  1. Создание индекса с несколькими тестовыми документами.
  2. Использование GenerateFlowFile -> JsonQueryElasticsearch.
  3. Помещение этого простого запроса в параметр запроса JsonQueryElasticsearch:
{
  "query": {
    "match": {
      "from": "${sender}"
    }
  },
  "aggs": {
    "senders": {
      "terms": {
        "field": "from",
        "size": 10
      }
    }
  }
}

Все ожидаемые результатыбыли возвращены.Если вы пытаетесь передать запрос через содержимое потокового файла, вы не можете использовать язык выражений (${unique_id}).Это ожидаемое поведение, поскольку язык выражений оценивается не для содержимого потоковых файлов, а только для свойств конфигурации.

...