Elasticsearch

Elasticsearch
ТипПошуковий індекс
АвторShay Banond
РозробникShay Banon
Стабільний випуск8.16.0 (12 листопада 2024)
Платформавіртуальна машина Java
Операційна системаБагатоплатформність
Мова програмуванняJava
ЛіцензіяApache License
Репозиторійgithub.com/elastic/elasticsearch
Вебсайтwww.elastic.co/products/elasticsearch

Elasticsearch — вільне програмне забезпечення, пошуковий сервер, розроблений на базі Lucene. Надає розподілений, багатоклієнтський[en] повнотекстовий пошуковий рушій з HTTP вебінтерфейсом і підтримкою безсхемних JSON документів.[1]

Є найпопулярнішим пошуковим рушієм, випереджаючи Apache Solr. Розробляється на Java і випускається під ліцензією Apache License.[2]

Історія

Elasticsearch є продовженням проєкту Compass, значну частину якого було переписано задля підтримки масштабовності (Compass — пошуковий рушій на базі Lucene, розроблявся Шейєм Беноном в 2004—2009 роках)[3].

Перший випуск Elasticsearch (версія 0.4) відбувся у лютому 2010.

Огляд

Elasticsearch може використовуватись для індексування та пошуку будь-яких типів документів. Він надає масштабовний пошук, має пошук близький до реального часу і підтримку мультиарендності.

Elasticsearch має можливість розподілення, індекси можуть бути розділені на сегменти, при чому кожен сегмент може мати нуль чи більше реплік. Кожен вузол містить один чи більше сегментів і діє як координатор делегування операцій на потрібний сегмент. Балансування та маршрутизація виконується автоматично.

Приклади використання

  • Реалізація внутрішнього пошуку на вебсайті, наприклад пошук товарів в інтернет-магазині. В цьому випадку Elasticsearch індексує каталоги товарів, та надає можливості пошуку та припущення щодо автозаповнення.
  • Зберігання журналів подій чи транзакцій, аналізування і добування даних для отримання тенденцій, статистик, висновків, аномалій. В даному випадку можна використовувати Logstash для збору, об'єднання, аналізу даних, і потім перенаправляти ці дані в Elasticsearch для подальшого опрацювання.
  • Для розробки, наприклад, платформи для цінового оповіщення, що дозволяє досвідченим в цій сфері користувачам визначати правила типу «Я зацікавлений в придбанні електронного ґаджету XXX і я хочу бути оповіщеним якщо ціна у будь-якого постачальника впаде нижче XXX протягом наступного місяця». В даному випадку можна збирати ціни, індексувати їх в Elasticsearch і використовувати функцію зворотнього пошуку: зіставляти коливання цін з запитом користувача і при відповідності до запиту надсилати сповіщення.
  • Для впровадження аналітики/Бізнес-аналітики у проєкт, коли треба швидко досліджувати, аналізувати, візуалізувати надзвичайно великі об'єми даних (мільйони чи мільярди записів). У цьому разі доцільно використання Elasticsearch для збереження даних і Kibana для побудови користувацьких панелей відображення і візуалізації необхідних аспектів. До того ж, можна використовувати агрегаційні функції Elasticsearch для здійснення комплексної бізнес-аналітики даних.[4]

Підтримка української

У версії 5.1.1 додано підтримку української через аналізатор української мови в Apache Lucene[5].

Примітки

  1. Elasticsearch. www.elastic.co. Архів оригіналу за 21 вересня 2015. Процитовано 9 лютого 2016.
  2. DB-Engines Ranking - popularity ranking of search engines. db-engines.com. Архів оригіналу за 19 жовтня 2018. Процитовано 9 лютого 2016.
  3. The Future of Compass & ElasticSearch. 27 серпня 2013. Архів оригіналу за 27 серпня 2013. Процитовано 9 лютого 2016. [Архівовано 2013-08-27 у Wayback Machine.]
  4. Getting Started. www.elastic.co. Архів оригіналу за 17 лютого 2016. Процитовано 9 лютого 2016.
  5. 5.1.1 Release Notes. www.elastic.co. Архів оригіналу за 20 грудня 2016. Процитовано 9 грудня 2016. [Архівовано 2016-12-20 у Wayback Machine.]

Посилання