Дмитрий Троян | troyan.dmitriy@gmail.com
О чем будем говорить?
Дмитрий Троян | troyan.dmitriy@gmail.com
Shay Banon
Начало 2010 года - Elasticsearch 0.4
В 2012 была создана компания Elasticsearch BV для платной поддержки пользователей
В 2014 было привлечено $ 104 000 000 в виде инвестиций
Актуальная версия Elasticsearch 5.3
Дмитрий Троян | troyan.dmitriy@gmail.com
По порядку об Elasticsearch
Open Source
Распределенность
Масштабируемость
Высокая доступность
Документ-ориентированность
RESTful
Полнотекстовый поиск
Ответ в режиме близком к реальному времени
Дмитрий Троян | troyan.dmitriy@gmail.com
По порядку об Elasticsearch
Open Source
Распределенность
Масштабируемость
Высокая доступность
Документ-ориентированность
RESTful
Полнотекстовый поиск
Ответ в режиме близком к реальному времени
Apache 2.0 License
Свобода использования и внесения изменений!
https://github.com/elastic/elasticsearch
~22 000 stars и ~800 contributors
Дмитрий Троян | troyan.dmitriy@gmail.com
По порядку об Elasticsearch
Open Source
Распределенность
Масштабируемость
Высокая доступность
Документ-ориентированность
RESTful
Полнотекстовый поиск
Ответ в режиме близком к реальному времени
Дмитрий Троян | troyan.dmitriy@gmail.com
По порядку об Elasticsearch
Open Source
Распределенность
Масштабируемость
Высокая доступность
Документ-ориентированность
RESTful
Полнотекстовый поиск
Ответ в режиме близком к реальному времени
Дмитрий Троян | troyan.dmitriy@gmail.com
По порядку об Elasticsearch
Open Source
Распределенность
Масштабируемость
Высокая доступность
Документ-ориентированность
RESTful
Полнотекстовый поиск
Ответ в режиме близком к реальному времени
Дмитрий Троян | troyan.dmitriy@gmail.com
По порядку об Elasticsearch
Open Source
Распределенность
Масштабируемость
Высокая доступность
Документ-ориентированность
RESTful
Полнотекстовый поиск
Ответ в режиме близком к реальному времени
Дмитрий Троян | troyan.dmitriy@gmail.com
По порядку об Elasticsearch
Open Source
Распределенность
Масштабируемость
Высокая доступность
Документ-ориентированность
RESTful
Полнотекстовый поиск
Ответ в режиме близком к реальному времени
Дмитрий Троян | troyan.dmitriy@gmail.com
USE CASES
Дмитрий Троян | troyan.dmitriy@gmail.com
Что мы получаем из коробки
Дмитрий Троян | troyan.dmitriy@gmail.com
С чего начать?
Дмитрий Троян | troyan.dmitriy@gmail.com
java -version�echo $JAVA_HOME
curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.3.0.tar.gz
tar -xvf elasticsearch-5.3.0.tar.gz�cd elasticsearch-5.3.0/bin
./elasticsearch
[2017-03-13 13:42:17,218][INFO ][node ] [New Goblin] version[5.3.0], pid[2085], build[5c03844/2017-02-25T15:52:53Z]�[2017-03-13 13:42:17,219][INFO ][node ] [New Goblin] initializing ...�[2017-03-13 13:42:17,223][INFO ][plugins ] [New Goblin] loaded [], sites []�[2017-03-13 13:42:19,831][INFO ][node ] [New Goblin] initialized�[2017-03-13 13:42:19,832][INFO ][node ] [New Goblin] starting ...�[2017-03-13 13:42:19,958][INFO ][transport ] [New Goblin] bound_address {inet[/0:0:0:0:0:0:0:0:9300]}, publish_address {inet[/192.168.8.112:9300]}�[2017-03-13 13:42:23,030][INFO ][cluster.service] [New Goblin] new_master [New Goblin][rWMtGj3dQouz2r6ZFL9v4g][mwubuntu1][inet[/192.168.8.112:9300]], reason: zen-disco-join (elected_as_master)�[2017-03-13 13:42:23,100][INFO ][discovery ] [New Goblin] elasticsearch/rWMtGj3dQouz2r6ZFL9v4g�[2017-03-13 13:42:23,125][INFO ][http ] [New Goblin] bound_address {inet[/0:0:0:0:0:0:0:0:9200]}, publish_address {inet[/192.168.8.112:9200]}�[2017-03-13 13:42:23,629][INFO ][gateway ] [New Goblin] recovered [1] indices into cluster_state�[2017-03-13 13:42:23,630][INFO ][node ] [New Goblin] started
Установка в AWS
Дмитрий Троян | troyan.dmitriy@gmail.com
Основные понятия
Мир реляционных БД | Elasticsearch |
База данных (Database) | Индекс (Index) |
Таблица (Table) | Тип (Type) |
Запись (Row) | Документ (Document) |
Колонка (Column) | Поле (Field) |
Схема (Schema) | Отображение (Mapping) |
SQL | Query DSL |
Дмитрий Троян | troyan.dmitriy@gmail.com
Кластер
Дмитрий Троян | troyan.dmitriy@gmail.com
Как выглядит поисковый запрос?
Дмитрий Троян | troyan.dmitriy@gmail.com
$ curl -XPOST 'http://localhost:9200/twitter/tweet' -d '{� "user" : "kimchy",� "postDate" : "2009-11-15T14:12:12",� "message" : "trying out Elasticsearch"�}�'
$ curl -XGET 'http://localhost:9200/twitter/tweet/_search?q=user:kimchy'
$ curl -XPOST 'http://localhost:9200/twitter/tweet' -d '{� "query" : {� "term" : { "user" : "kimchy" }� }�}
'
{� "_shards":{� "total" : 5,� "successful" : 5,� "failed" : 0� },� "hits":{� "total" : 1,� "hits" : [� {� "_index" : "twitter",� "_type" : "tweet",� "_id" : "1",� "_source" : {� "user" : "kimchy",� "postDate" : "2009-11-15T14:12:12",� "message" : "trying out Elasticsearch"� }� }� ]� }�}
Как используем Elasticsearch в проекте
Дмитрий Троян | troyan.dmitriy@gmail.com
Хранение сообщений и связанной информации
Поиск по вышеперечисленным сущностям
Хранение информации о файлах
Хранение комментариев к файлам
Грабли, шишки и другие… особенности
Дмитрий Троян | troyan.dmitriy@gmail.com
Производительность
https://esrally.readthedocs.io/en/latest/quickstart.html
Дмитрий Троян | troyan.dmitriy@gmail.com
Kibana
Дмитрий Троян | troyan.dmitriy@gmail.com
Дмитрий Троян | troyan.dmitriy@gmail.com
ВРЕМЯ ВОПРОСОВ