Поисковая система ElasticSearch

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

Поисковая система написана на языке программирования Java и основана на библиотеке Lucene. Клиентские библиотеки для работы с ElasticSearch доступны для языков программирования PHP, Ruby, Python, Java, C# и других .

Разрабатывается компанией Elastic вместе со связанными программными продуктами — Logstash (механизм сбора и анализа данных и логов)  и Kibana (аналитическая платформа с богатыми возможностями визуализации). ElasticSearch, Logstash и Kibana вместе образуют интегрированное решение Elastic Stack.

Основное прикладное применение — полнотекстовый поиск и/или фильтрация данных по сложным запросам. В этих задачах поисковая система сильно опережает по скорости и возможностям механизмы, имеющиеся в реляционных СУБД.

Среди крупных проектов, использующих Elasticsearch, стоит отметить Wikimedia, Quora, Foursquare, SoundCloud, GitHub и Netflix.

Мы используем ElasticSearch в реализации полнотекстового поиска на сайтах, для создания фасеточных фильтров и в разработке аналитических инструментов.

Тематические технологии:

СУБД Redis
Колоночная СУБД Scylla
Колоночная СУБД Cassandra
PostgreSQL — объектно-реляционная СУБД
Хранилище Memcached

Cтатьи по теме:

Быстрый поиск на сайте, используя ElasticSearch или Sphinx
Sphinx и ElasticSearch — это поисковые «движки», которые обеспечивают более быстрый поиск и фильтрацию по сравнению с реляционными базами данных, а также обеспечивают возможность использования многих полезных функций поиска, например, учитывают морфологию языка, осуществляют фасеточный поиск, работают со стоп-словами, обеспечивают выборочную индексацию и позволяют производить настройку формулы определения релевантности документов.
Ускоряем работу сайта при помощи кеширования на базе Memcached
Memcached — это хранилище «ключ => значение», использование которого очень эффективно для ускорения работы сайта или веб-приложения.
Масштабирование баз данных — партиционирование, репликация и шардинг
СУБД — это очень часто «узкое место» в производительности веб-приложений. В момент, когда сервер баз данных не может справится с нагрузками, производится масштабирование. Рассмотрим основные способы увеличения производительности СУБД.
Реляционные базы данных и NoSQL-хранилища
13.03.2019  |  Статьи  —  СУБД  /  хранение данных  /  SQL  /  NoSQL  /  серверное ПО
Базы данных служат для хранения и обработки данных. Бывают реляционные (SQL) и нереляционные (NoSQL) системы управления базами данных.
Ускоряем работу сайта: используем Redis для кеширования и хранения данных
Redis — сетевое журналируемое хранилище данных типа «ключ — значение», которое обрабатывает данные в оперативной памяти и обладает механизмами снимков и журналирования для обеспечения постоянного хранения. Хранилище поддерживает работу с пятью типами данных: со строками, списками, хешами, обычными и сортируемыми множествами.
MongoDB — документо-ориентированная база данных (NoSQL)
MongoDB — это NoSQL хранилище данных, крайне удобное для хранения информации, которая не может быть нормально структурирована в рамках реляционных баз данных.
MySQL — система управления базами данных
MySQL — это реляционная система управления базами данных с открытым исходным кодом. В настоящее время эта СУБД одна из наиболее популярных в веб-приложениях — подавляющее большинство CMS использует именно MySQL (часто только её, без альтернатив), а почти все веб-фреймворки поддерживают MySQL уже на уровне базовой конфигурации (без дополнительных модулей).