Пустая переменная ctx._source при запуске скрипта

В голове elasticsearch я запускаю запрос для получения некоторых агрегаций. Для этого мне нужно получить некоторую информацию из переменной ctx. В моем сценарии, когда я пытаюсь использовать: ctx._source, я получаю исключение nullPointerException.

"aggregations": {
    "fieldId": {
      "terms": {
        "script": {
          "source": "... <Here I want to get ctx._source but I get null pointer>... ,
          "lang": "painless"
        },
        ...
        ]
      }
    }
  }

person jsmal1988    schedule 06.08.2019    source источник


Ответы (1)


Специальные переменные ctx доступны только во время индексации (процессор загрузки, update_by_query и т. д.).

Для получения дополнительной информации о контексте безболезненного скрипта и доступной переменной вы можете перейти по ссылке здесь.

Я не думаю, что источник доступен во время агрегации, так как он будет эластичным для всех источников документов до создания агрегации. Это будет иметь огромные накладные расходы. Вы можете полагаться только на doc_values ​​для создания значения сценария.

person Pierre Mallet    schedule 06.08.2019