Учебники

Elasticsearch — Основные понятия

Elasticsearch — это поисковый сервер на основе Apache Lucene. Он был разработан Shay Banon и опубликован в 2010 году. В настоящее время поддерживается Elasticsearch BV. Последняя версия — 2.1.0.

Elasticsearch — это механизм полнотекстового поиска и анализа в реальном времени с открытым исходным кодом. Он доступен из интерфейса веб-службы RESTful и использует документы без схемы JSON (JavaScript Object Notation) для хранения данных. Он построен на языке программирования Java, что позволяет Elasticsearch работать на разных платформах. Это позволяет пользователям исследовать очень большой объем данных с очень высокой скоростью.

Elasticsearch — Общие характеристики

Общие черты Elasticsearch следующие:

  • Elasticsearch масштабируется до петабайт структурированных и неструктурированных данных.

  • Elasticsearch может использоваться в качестве замены хранилищ документов, таких как MongoDB и RavenDB.

  • Elasticsearch использует денормализацию для улучшения производительности поиска.

  • Elasticsearch — одна из популярных поисковых систем для предприятий, которая в настоящее время используется многими крупными организациями, такими как Википедия, The Guardian, StackOverflow, GitHub и т. Д.

  • Elasticsearch имеет открытый исходный код и доступен под лицензией Apache версии 2.0.

Elasticsearch масштабируется до петабайт структурированных и неструктурированных данных.

Elasticsearch может использоваться в качестве замены хранилищ документов, таких как MongoDB и RavenDB.

Elasticsearch использует денормализацию для улучшения производительности поиска.

Elasticsearch — одна из популярных поисковых систем для предприятий, которая в настоящее время используется многими крупными организациями, такими как Википедия, The Guardian, StackOverflow, GitHub и т. Д.

Elasticsearch имеет открытый исходный код и доступен под лицензией Apache версии 2.0.

Elasticsearch — Ключевые понятия

Ключевые понятия Elasticsearch следующие:

  • Узел — относится к одному запущенному экземпляру Elasticsearch. Один физический и виртуальный сервер вмещает несколько узлов в зависимости от возможностей их физических ресурсов, таких как оперативная память, память и вычислительная мощность.

  • Кластер — это набор из одного или нескольких узлов. Кластер предоставляет возможности коллективного индексирования и поиска по всем узлам для всех данных.

  • Индекс — это коллекция документов различного типа и свойств документа. Индекс также использует концепцию осколков для повышения производительности. Например, набор документов содержит данные приложения для социальных сетей.

  • Тип / отображение — это набор документов, использующих набор общих полей, присутствующих в одном и том же индексе. Например, индекс содержит данные приложения социальной сети, и тогда может быть определенный тип данных профиля пользователя, другой тип данных обмена сообщениями и другой тип данных комментариев.

  • Документ — это набор полей определенным образом, определенный в формате JSON. Каждый документ принадлежит к типу и находится внутри индекса. Каждый документ связан с уникальным идентификатором, называемым UID.

  • Осколок — Индексы горизонтально подразделяются на осколки. Это означает, что каждый шард содержит все свойства документа, но содержит меньше объектов JSON, чем индекс. Горизонтальное разделение делает шард независимым узлом, который можно хранить в любом узле. Первичный осколок является исходной горизонтальной частью индекса, а затем эти первичные осколки реплицируются в осколки реплики.

  • Реплики — Elasticsearch позволяет пользователю создавать реплики своих индексов и шардов. Репликация не только помогает повысить доступность данных в случае сбоя, но и повышает производительность поиска, выполняя параллельную операцию поиска в этих репликах.

Узел — относится к одному запущенному экземпляру Elasticsearch. Один физический и виртуальный сервер вмещает несколько узлов в зависимости от возможностей их физических ресурсов, таких как оперативная память, память и вычислительная мощность.

Кластер — это набор из одного или нескольких узлов. Кластер предоставляет возможности коллективного индексирования и поиска по всем узлам для всех данных.

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

Тип / отображение — это набор документов, использующих набор общих полей, присутствующих в одном и том же индексе. Например, индекс содержит данные приложения социальной сети, и тогда может быть определенный тип данных профиля пользователя, другой тип данных обмена сообщениями и другой тип данных комментариев.

Документ — это набор полей определенным образом, определенный в формате JSON. Каждый документ принадлежит к типу и находится внутри индекса. Каждый документ связан с уникальным идентификатором, называемым UID.

Осколок — Индексы горизонтально подразделяются на осколки. Это означает, что каждый шард содержит все свойства документа, но содержит меньше объектов JSON, чем индекс. Горизонтальное разделение делает шард независимым узлом, который можно хранить в любом узле. Первичный осколок является исходной горизонтальной частью индекса, а затем эти первичные осколки реплицируются в осколки реплики.

Реплики — Elasticsearch позволяет пользователю создавать реплики своих индексов и шардов. Репликация не только помогает повысить доступность данных в случае сбоя, но и повышает производительность поиска, выполняя параллельную операцию поиска в этих репликах.

Elasticsearch — Преимущества

  • Elasticsearch разработан на Java, что делает его совместимым практически на любой платформе.

  • Elasticsearch в режиме реального времени, другими словами, через одну секунду добавленный документ доступен для поиска в этом движке.

  • Elasticsearch распространяется, что позволяет легко масштабировать и интегрировать в любую крупную организацию.

  • Создание полных резервных копий легко с использованием концепции шлюза, которая присутствует в Elasticsearch.

  • Работа с несколькими арендаторами очень проста в Elasticsearch по сравнению с Apache Solr.

  • Elasticsearch использует объекты JSON в качестве ответов, что позволяет вызывать сервер Elasticsearch с большим количеством различных языков программирования.

  • Elasticsearch поддерживает практически все типы документов, кроме тех, которые не поддерживают рендеринг текста.

Elasticsearch разработан на Java, что делает его совместимым практически на любой платформе.

Elasticsearch в режиме реального времени, другими словами, через одну секунду добавленный документ доступен для поиска в этом движке.

Elasticsearch распространяется, что позволяет легко масштабировать и интегрировать в любую крупную организацию.

Создание полных резервных копий легко с использованием концепции шлюза, которая присутствует в Elasticsearch.

Работа с несколькими арендаторами очень проста в Elasticsearch по сравнению с Apache Solr.

Elasticsearch использует объекты JSON в качестве ответов, что позволяет вызывать сервер Elasticsearch с большим количеством различных языков программирования.

Elasticsearch поддерживает практически все типы документов, кроме тех, которые не поддерживают рендеринг текста.

Elasticsearch — недостатки

  • Elasticsearch не имеет многоязычной поддержки с точки зрения обработки данных запросов и ответов (возможно только в JSON) в отличие от Apache Solr, где это возможно в форматах CSV, XML и JSON.

  • Elasticsearch также имеют проблемы с разделением головного мозга, но в редких случаях.

Elasticsearch не имеет многоязычной поддержки с точки зрения обработки данных запросов и ответов (возможно только в JSON) в отличие от Apache Solr, где это возможно в форматах CSV, XML и JSON.

Elasticsearch также имеют проблемы с разделением головного мозга, но в редких случаях.

Сравнение между Elasticsearch и RDBMS

В Elasticsearch индекс представляет собой набор типов, так же как база данных представляет собой набор таблиц в RDBMS (Relation Database Management System). Каждая таблица представляет собой набор строк, так же как каждое отображение представляет собой набор объектов JSON Elasticsearch.