23
Опыт использования Elasticsearch Илья Никляев IT Meetup’18, 14 апреля 2018, Волгоград

Singularis Lab - Singularis lab - Опыт использования...Если Вам нужно выполнять сложные запросы (сложные агрегации,

  • Upload
    others

  • View
    17

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Singularis Lab - Singularis lab - Опыт использования...Если Вам нужно выполнять сложные запросы (сложные агрегации,

Опыт использования Elasticsearch

Илья Никляев

IT Meetup’18, 14 апреля 2018, Волгоград

Page 2: Singularis Lab - Singularis lab - Опыт использования...Если Вам нужно выполнять сложные запросы (сложные агрегации,

0

Что такое ES?

• Направленность на поисковые запросы

• Движок Lucene

• NoSQL БД

14 апреля 2018 IT Meetup'18, Волгоград 2

Page 3: Singularis Lab - Singularis lab - Опыт использования...Если Вам нужно выполнять сложные запросы (сложные агрегации,

0

Что такое ES?

• Документы – JSON-объекты

• Индексы – коллекции документов одного типа

• Mappings – отображения структуры документов на структуру индекса

14 апреля 2018 IT Meetup'18, Волгоград 3

Page 4: Singularis Lab - Singularis lab - Опыт использования...Если Вам нужно выполнять сложные запросы (сложные агрегации,

0

Что такое ES?

• REST API:– Индексы

• PUT /customer• GET _cat/indices

– Документы• PUT /customer/_doc/1 { "name": "John Doe" }

– Поиск• GET /bank/_search { "query": { "match_all": {} } }

– Агрегация• GET /bank/_search { "size": 0, "aggs": { "group_by_state": {

"terms": { "field": "state.keyword" } } } }

14 апреля 2018 IT Meetup'18, Волгоград 4

Page 5: Singularis Lab - Singularis lab - Опыт использования...Если Вам нужно выполнять сложные запросы (сложные агрегации,

0

Что такое ES?

• Dynamic mapping

– автоматически при индексировании документа

• Explicit mapping

14 апреля 2018 IT Meetup'18, Волгоград 5

Page 6: Singularis Lab - Singularis lab - Опыт использования...Если Вам нужно выполнять сложные запросы (сложные агрегации,

0

Наши задачи

• Хранение и удобный просмотр системных логов

• Хранение журналов сущностей

• Построение отчетов по журналам (графики, таблицы)

• Поиск сущностей (+ autocomplete)

14 апреля 2018 IT Meetup'18, Волгоград 6

Page 7: Singularis Lab - Singularis lab - Опыт использования...Если Вам нужно выполнять сложные запросы (сложные агрегации,

0

Системные логи

• Что храним:

– плоские объекты

14 апреля 2018 IT Meetup'18, Волгоград 7

Page 8: Singularis Lab - Singularis lab - Опыт использования...Если Вам нужно выполнять сложные запросы (сложные агрегации,

0

Системные логи

• Запросы:

– поиск

– фильтрация

14 апреля 2018 IT Meetup'18, Волгоград 8

Page 9: Singularis Lab - Singularis lab - Опыт использования...Если Вам нужно выполнять сложные запросы (сложные агрегации,

0

Журналы сущностей

• Что храним:

– объекты с вложенными коллекциями

14 апреля 2018 IT Meetup'18, Волгоград 9

Page 10: Singularis Lab - Singularis lab - Опыт использования...Если Вам нужно выполнять сложные запросы (сложные агрегации,

0

Журналы сущностей

• Запросы:

– фильтрация

– агрегация

14 апреля 2018 IT Meetup'18, Волгоград 10

Page 11: Singularis Lab - Singularis lab - Опыт использования...Если Вам нужно выполнять сложные запросы (сложные агрегации,

0

Журналы сущностей

14 апреля 2018 IT Meetup'18, Волгоград 11

Page 12: Singularis Lab - Singularis lab - Опыт использования...Если Вам нужно выполнять сложные запросы (сложные агрегации,

0

Autocomplete

• Что храним:

– плоские объекты – части сущностей

14 апреля 2018 IT Meetup'18, Волгоград 12

Page 13: Singularis Lab - Singularis lab - Опыт использования...Если Вам нужно выполнять сложные запросы (сложные агрегации,

0

Autocomplete

14 апреля 2018 IT Meetup'18, Волгоград 13

Page 14: Singularis Lab - Singularis lab - Опыт использования...Если Вам нужно выполнять сложные запросы (сложные агрегации,

0

Autocomplete

• Запросы:

– поиск

14 апреля 2018 IT Meetup'18, Волгоград 14

Page 15: Singularis Lab - Singularis lab - Опыт использования...Если Вам нужно выполнять сложные запросы (сложные агрегации,

0

Elasticsearch для .NET: NEST

.NET JSON

14 апреля 2018 IT Meetup'18, Волгоград 15

Page 16: Singularis Lab - Singularis lab - Опыт использования...Если Вам нужно выполнять сложные запросы (сложные агрегации,

0

Kibana

14 апреля 2018 IT Meetup'18, Волгоград 16

Page 17: Singularis Lab - Singularis lab - Опыт использования...Если Вам нужно выполнять сложные запросы (сложные агрегации,

0

Kibana

14 апреля 2018 IT Meetup'18, Волгоград 17

Page 18: Singularis Lab - Singularis lab - Опыт использования...Если Вам нужно выполнять сложные запросы (сложные агрегации,

0

Kibana

14 апреля 2018 IT Meetup'18, Волгоград 18

Page 19: Singularis Lab - Singularis lab - Опыт использования...Если Вам нужно выполнять сложные запросы (сложные агрегации,

0

Подводные камни

• Read-only mappings (почти):

– можно добавлять поля

– можно добавлять multi-fields (изменять настройки поиска) к уже существующим полям

• Вложенные коллекции

– по умолчанию хранятся в индексе совсем не так, как можно ожидать

• Нет механизма авторизации

14 апреля 2018 IT Meetup'18, Волгоград 19

Page 20: Singularis Lab - Singularis lab - Опыт использования...Если Вам нужно выполнять сложные запросы (сложные агрегации,

0

Результаты

Несколько различных задач решены при помощи одного инструмента

14 апреля 2018 IT Meetup'18, Волгоград 20

Page 21: Singularis Lab - Singularis lab - Опыт использования...Если Вам нужно выполнять сложные запросы (сложные агрегации,

0

Выводы

Если Вам нужно выполнять сложные запросы (сложные агрегации, специфичные поисковые запросы для autocomplete)

к массиву данных –

Elasticsearch позволит быстро решить эти задачи

14 апреля 2018 IT Meetup'18, Волгоград 21

Page 22: Singularis Lab - Singularis lab - Опыт использования...Если Вам нужно выполнять сложные запросы (сложные агрегации,

0

Ссылки

• Документация по Elasticsearch: https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html

14 апреля 2018 IT Meetup'18, Волгоград 22

Page 23: Singularis Lab - Singularis lab - Опыт использования...Если Вам нужно выполнять сложные запросы (сложные агрегации,

014 апреля 2018 IT Meetup'18, Волгоград 23