Быстрый поиск на сайте, используя ElasticSearch или Sphinx

Sphinx и ElasticSearch — это поисковые «движки», которые обеспечивают более быстрый поиск и фильтрацию по сравнению с реляционными базами данных, а также обеспечивают возможность использования многих полезных функций поиска, например, учитывают морфологию языка, осуществляют фасеточный поиск, работают со стоп-словами, обеспечивают выборочную индексацию и позволяют производить настройку формулы определения релевантности документов.

Sphinx — система полнотекстового поиска, обладающая очень высокой скоростью индексации и поиска, отлично интегрированная с MySQL и PostgreSQL, имеющая API для распространённых языков веб-программирования (PHP, Python, Java, Perl, Ruby и C++). Sphinx написан на C++ и свободно распространяется по лицензии GNU GPL. Сфинкс используется на Хабрахабре, в проекте Викимапия, в Craigslist, в vBulletin, поддерживается системой управления сайтами 1С-Битрикс.

Elasticsearch — поисковая система, построенная на базе индекса Lucene. Обеспечивает распределенную работу с данными, предоставляет RESTful интерфейс и хранение JSON-документов без заранее определяемой структуры (т.н. schemaless). Наиболее часто используется именно в качестве поисковой системы, но возможно и его применение в качестве персистентного NoSQL-хранилища. Имеется API для работы с распространенными языками программирования. Сам Elasticsearch написан на Java и распространяется свободно на условиях Apache License. Используется в Wikimedia, Mozilla, Foursquare, Etsy, SoundCloud и GitHub.

Использование Sphinx и ElasticSearch повышает скорость и качество поиска по большим объёмам информации, а также предоставляет пользователям полезные в работе с данными инструменты.

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

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

Узнать больше →

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

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

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

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