Elasticsearch - это поисковый сервер с открытым исходным кодом, построенный на базе Apache Lucene. Он использует Lucene в качестве основной поисковой системы, но предоставляет множество функций, которые не являются частью Lucene. Например, использование Elasticsearch опирается на обширный REST API. Как и Apache Lucene, Elasticsearch написан на Java и поэтому является кросс-платформенным и будет работать на различных операционных системах. Elasticsearch с самого начала разрабатывался как масштабируемый, что означает, что он имеет распределенную архитектуру. Он предназначен для получения данных из любого источника данных и их поиска.
Связь с Elasticsearch осуществляется через HTTP REST API. Например, рассмотрим пример, в котором сотрудник извлекается путем отправки HTTP-запроса с использованием cURL. Мы увидим множество подобных примеров в этой серии, поэтому не будем вдаваться в подробности, но просто знайте, что запросы обычно следуют шаблону, который вы видите ниже, где ID необязателен.
1 | curl -X[HTTP method] [node address]:[port]/[index name]/[type name]/[ID] |
К примеру
1 | curl -X GET http://localhost:9200/webshop/employee/123 |
Документы, хранящиеся в Elasticsearch, представляют собой JSON-документы, не имеющие схемы, как в базах данных NoSQL. Это означает, что вам не нужно определять поля и их типы данных перед добавлением данных, как это происходит, например, в реляционных базах данных. Elasticsearch имеет открытый исходный код, но разрабатывается компанией Elasticsearch BV, которая предоставляет коммерческие решения, связанные с поисковой системой. Elasticsearch работает практически в режиме реального времени, то есть с момента добавления, изменения или удаления документа изменения распространяются по всему кластеру в течение одной-двух секунд. Для небольших кластеров изменения практически распространяются быстрее. Благодаря распределенной и масштабируемой архитектуре изменения не становятся доступными немедленно, как, например, в реляционной базе данных, работающей на одной машине.
За последние несколько лет Elasticsearch стал очень популярен и навязчив. Отчасти его успех объясняется простотой использования по сравнению с конкурентами, такими как Apache Solr, а также широким набором функций. На предприятиях его успех также во многом объясняется тем, что он очень хорошо масштабируется благодаря своей распределенной архитектуре. На этом слайде я просто хотел показать вам, что шумиха не лишена оснований, потому что многие крупные организации используют Elasticsearch, как вы можете видеть в этом списке известных пользователей.