Работает ли поле сценариев Kibana во время выполнения? - PullRequest
0 голосов
/ 24 марта 2020

Мне нужно реализовать countif(range, criteria) как поле в скриптовом поле Кибаны.

Меня беспокоит:

Может ли это поле со сценариями получать полный диапазон данных в режиме реального времени, так как данные будут добавляться в режиме реального времени?

1 Ответ

0 голосов
/ 24 марта 2020

Действительно,

Поле сценариев Kibana вычисляется во время запроса , поэтому они не индексируются и не могут быть найдены с использованием языка запросов Kibana по умолчанию.

Итак, да, как только вы запросите запрос в Кибане, скриптовые поля рассчитываются на лету. Вы должны иметь в виду, что поле сценария может быть очень ресурсоемким, и если есть другой способ сделать то же самое, вы должны отдать предпочтение этому

Для запроса счетчика вы можете сделать что-то вроде этого:

def counter = 0;

for(int i=0; i < params['_source']['your_field'].length;i++){
    if(params['_source']['your_field'][i] == 'criteria') counter++;
}

return counter;

Обратите внимание, что вы должны получить доступ к вашему полю с помощью параметров ['_ source'] ['your_field'], а не с помощью doc ['your_field'], потому что вы не можете подсчитать количество вхождений с индексированным полем поскольку он сводит все одни и те же вхождения к одному значению

Более подробную информацию можно получить в документации

.
...