Elasticsearch

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

Elasticsearch — вільне програмне забезпечення, пошуковий сервер, розроблений на базі Lucene. Надає розподілений, мультиарендний повнотекстовий пошуковий рушій з 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. Процитовано 9 лютого 2016.
  2. DB-Engines Ranking - popularity ranking of search engines. db-engines.com. Процитовано 9 лютого 2016.
  3. The Future of Compass & ElasticSearch. 27 серпня 2013. Процитовано 9 лютого 2016.
  4. Getting Started. www.elastic.co. Процитовано 9 лютого 2016.
  5. 5.1.1 Release Notes. www.elastic.co. Архів оригіналу за 20 грудня 2016. Процитовано 9 грудня 2016.

Посилання