Панель инструментов Kibana — исходные данные из 2 индексов с одинаковым отображением

Я пытаюсь настроить панель инструментов Kibana. В Elasticsearch есть только один тип документа.
У нас есть два индекса с одинаковым отображением:

Индексы product_1 и product_2:

"_index": "product_1",
"_type": "product",
"_id": "3da33451d10f095c4b8cd485133dc23639244538",
"_score": 1,
"_source": {
    ...
    source": { "brand": "","category": "","store": "Store1"}
    ...
}

"_index": "product_1",
"_type": "product",
"_id": "3da33451d10f095c4b8cd485133dc23639244538",
"_score": 1,
"_source": {
    ...
    source": { "brand": "","category": "","store": "Store2"}
    ...
}
...

Нам удалось создать следующую визуализацию.
Нам нужно посчитать общее количество товаров (документов) по полю store:

Top 0 source.store    Count
Store1                52,517
Store2                31,517
Store3                12,838
...

Итак, вопрос: как нам добавить сюда данные из второго индекса, чтобы получить такой результат:

Top 0 source.store    Count (product_1)    Count (product_2)
Store1                52,517               42,517
Store2                31,517               56,517
Store3                12,838               13,890
...

Большое спасибо.

PS: Нам удалось собрать данные из 2-х индексов:
["product_1","product_2"]
Итак, кибана берет данные, как будто это один индекс, и мы получаем следующий неверный результат:

Top 0 source.store    Count (product_1+product_2)
Store1                102,517
Store2                62,517
Store3                24,838
...

person antonbormotov    schedule 16.07.2015    source источник


Ответы (1)


Я не совсем уверен, возможно ли то, что вы пытаетесь. Из документации по индексу эластичного поиска. :

The easiest and most familiar layout clones what you would expect from a relational database. 
You can (very roughly) think of an index like a database.

MySQL => Databases => Tables => Columns/Rows
Elasticsearch => Indices => Types => Documents with Properties

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

Теперь у вас может (должен) возникнуть вопрос: если это совершенно невозможно, как вы получили следующие результаты?

Top 0 source.store    Count (product_1+product_2)
Store1                102,517
Store2                62,517
Store3                24,838

Вот где кроется магия Кибаны. Вы можете создать шаблон индекса с подстановочным знаком. Это будет запрашивать каждый индекс, который попадает в карту. Например, создание logstash-* будет запрашивать все индексы logstash-[дата] и выдавать консолидированные результаты, которые вы видите. В вашем случае это можно сделать, создав шаблон индекса как product_*. Но я думаю, что вы не можете получить различные результаты с индексом (что, я полагаю, именно то, что вы ищете).

person mathakoot    schedule 16.07.2015