2015-07-30 2 views
0

Я искал способ рассчитать коэффициент на Кибане. После многих исследований я нашел этот способ: Использование функции «Вход JSON» в визуализации.Kibana и groovy scripting

У меня есть все мои данные в индексе с двумя типами документов (ботинки и перезагрузки). Я ищу сценарий, который подсчитывает количество документов с типом загрузки, то же самое для типа перезагрузки, а затем разделяет второе на первое. Это звучит очень просто, но я не могу найти способ получить его после моих исследований, и я не привык к достаточно хорошему , чтобы сделать это сам.

Я нашел много способов манипулировать значениями документов (doc ['mydocname']. Values ​​и т. Д.), Но ничего о типе.

Заранее спасибо.

EDIT: Я попробовал это

{ 
"aggs" : { 
    "boots_count" : { "value_count" : { "_type" : "boots" } } 
} 

} Какой должна подсчитать количество полей (здесь поле _Type) в индексе. Но когда я ввел его в «JSON Input» при визуализации, это приводит к ошибке:

Ошибка: запрос на поиск Elasticsearch не выполнен: {"error": "SearchPhaseExecutionException [Не удалось выполнить фазу [запрос], все осколки не пройдены ; shardFailures {[BbXJ0O6tRxa_OcyBfYCGJQ] [информацияbe] [0]: SearchParseException [[informationbe] [0]: from [-1], size [0]: Parse Failure [Не удалось разобрать источник [{\ "size \": 0, \ "Aggs \": {\ "2 \": {\ "условия \": {\ "поле \": \ "@ sitePoste \", \ "размер \": 5, \ "порядок \": {\ "1 \": \ "убывание \"}}, \ "Aggs \": {\ "1 \": {\ "средний \": {\ "сценарий \": \ "0 \", \ "Ланг \ ": \" expression \ ", \" ratio \ ": {\" boots_count \ ": {\" value_count \ ": {\" _ type \ ": \" boots \ "}}}}}}}}

Я ошибаюсь. Но где?

EDIT2: В другой стороны, я пытаюсь скриптовые поля, с чем-то вроде этого, используя Lucene выражение:

doc['_type:boots'].count/doc['_type:reboots'].count 

, но он не работает более, я очень уверен в «док [„_ Тип: ботинки“]» часть, я думаю, проблема в части «XXX.count».

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

+0

У вас есть пример неудача, и ошибка, которую вы получаете, или конкретная проблема? –

+0

У меня пока нет ошибок или ошибок, я ищу создание сценария, и я не знаю синтаксиса: s Из моих исследований я думаю о чем-то вроде этого: index ["type": "boot"]. счет, но я не нашел ничего эквивалентного. –

ответ

0

я, наконец, решить мою проблему:

Я добавил сценарное поле, если тип документа является сапожки, по сценарию поля = 1, иначе 0. Тогда я создал поиск только с ботинками и перезагружает документы (filter_type: boots _type: reboots) и вычислил среднее значение поля сценария в метрике.

Все работает хорошо!

Смежные вопросы