Разделить гистограмму (Kibana) на несколько секций (см. Изображение) - PullRequest
3 голосов
/ 24 января 2020

Проблема:

Я некоторое время боролся с Kibana (v7.5.1) Визуализация в течение некоторого времени для создания (как я думал, будет) простой гистограммы из данных ElasticSearch .

Я упросту свою задачу, чтобы сделать ее более общей: допустим, у меня есть магазин, продающий три разных предмета, помеченных X , Y и Z . У меня также были известные постоянные клиенты, обозначаемые как клиенты A , B и C.

Теперь, каждый раз, когда покупка сделано, json файл успешно проиндексирован с помощью ElasticSearch и выглядит примерно так:

{
  "PurchaseOrder": {
    "Customer": "A",
    "item_id": 2,
    ...
  }
}

Обратите внимание, что ElasticSearch индексирует клиента как текст строка и идентификатор элемента в виде числа (long). Затем я хочу создать гистограмму, показывающую, что каждый покупатель купил в течение некоторого произвольного периода времени. В частности, я хочу график, показанный внизу этого поста (нарисован в MS Paint). По графику я смогу определить общее количество предметов, купленных покупателем (например, клиент A купил всего 6 предметов), а также количество указанных c предметов ( из шести предметов, купленных клиентом A , один был X ).

Я пробовал:

Я нарисовал counts на оси Y и terms -> Customer на оси X, что, по сути, дало мне гистограмму, показывающую общее количество (всех) предметов, купленных покупателем. Тогда я подумал, что можно разделить ось Metrics на несколько осей, каждая из которых индивидуально отфильтрована по полю item_id, но, очевидно, filter не подходит для Metrics типа count ..

Simple example drawing made in MS Paint

1 Ответ

2 голосов
/ 24 января 2020

После долгих поисков, попыток и неудач я в конце концов нашел рабочее решение. В разделе Buckets я нажал Добавить , Разделить серии , выбрал Субагрегацию Фильтры . Затем я добавил пять фильтров и установил по одному для каждой позиции: PurchaseOrder.item_id : 1 с меткой item V. Немного неудобно иметь индивидуальный фильтр для каждого элемента, но, по крайней мере, он работает.

Я с удовольствием приму другой ответ, если кто-то сможет предложить более простое решение.

Я прошу прощения для «странных» шрифтов на изображении ниже: мне пришлось отредактировать его в MS Paint, чтобы метки соответствовали меткам исходного поста / вопроса.

Resultinggraph

...