Elasticsearch — тиражируемая свободная программная поисковая система, основанная на Lucene. Написана на Java, в основе использует библиотеку Lucene. Официальные клиенты доступны на Java, .NET (C#), Python, Groovy и ряде других языков.

file

Разрабатывается компанией Elastic вместе со связанными проектами — механизмом сбора данных и анализа журналов Logstash и платформой аналитики и визуализации под Kibana.
Среди крупных сайтов, использующих Elasticsearch, отмечаются Wikimedia, StumbleUpon, Quora, Foursquare, SoundCloud, GitHub, Netflix. Amazon, IBM, Qbox и компания Elastic предлагают подписчикам Elasticsearch в качестве управляемого сервиса, большинство таких публично-облачных управляемых услуг также включают поддержку Kibana.

Возможности ElasticSearch:

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

Все функции Lucene системы доступны через прикладные интерфейсы на JSON и Java.

Другая особенность — так называемый «шлюз», обеспечивающая долгосрочное сохранение индекса; например, индекс может быть восстановлен из шлюза в случае сбоя сервера. Система поддерживает запросы GET в реальном времени, что делает её пригодной для использования в качестве NoSQL-СУБД, но при этом не реализующей распределённых транзакций.

Обновлено 17 сентября 2018 г.