Sphinx — простой в использовании и развертывании, понятный и легкий инструмент для полнотекстового поиска в связке с базой данных MySQL.
Его главное преимущество — высокая скорость работы и сравнительная простота при масштабировании. Так что Sphinx подходит как для маленьких сайтов, так и для огромных площадок, как Craigslist, к примеру, на котором Sphinx обрабатывает более 50 млн. запросов ежедневно.
К тому же, система с легкостью справляется с индексацией больших объемов текста, так как поддерживает кластеризацию и шардинг.
Предположим, что база данных разделена на 3 шарда, которые размещены на одном сервере. Для настройки Sphinx нужно сконфигурировать source
и index
для определения источника данных и параметров индексации.
Для начала нужно подключиться к базе данных:
source shop_product { type = mysql sql_host = localhost sql_user = sphinx sql_pass = password sql_db = shop sql_sock = /var/run/mysqld/mysqld.sock }
# Подключение к БД, задание пользователя, пароля и сокета MySQL
Затем необходимо подключить дочерние источники:
source shop_smartphone : shop_product { sql_query_pre = SET NAMES utf8 sql_query_pre = SET SESSION query_cache_type=OFF sql_query = SELECT id, title, description FROM smartphone } source shop_tablet : shop_product { sql_query_pre = SET NAMES utf8 sql_query_pre = SET SESSION query_cache_type=OFF sql_query = SELECT id, title, description FROM tablet } source shop_phone : shop_product { sql_query_pre = SET NAMES utf8 sql_query_pre = SET SESSION query_cache_type=OFF sql_query = SELECT id, title, description FROM phone }
# Подключение дочерних таблиц БД
После подключения всех источников данных (которых может быть намного больше), нужно настроить индексирование для каждого из них:
index shop_smartphone_index { source = shop_smartphone path = /var/data/shop_smartphone charset_type = utf-8 } index shop_tablet_index { source = shop_tablet path = /var/data/shop_tablet charset_type = utf-8 } index shop_phone_index { source = shop_phone path = /var/data/shop_phone charset_type = utf-8 }
# Описание индексов и путей хранения
После того, как вы внесли все необходимые настройки в файл sphinx.conf, не забудьте запустить индексацию:
*/30 * * * * root [ -x /usr/bin/indexer ] && /usr/bin/indexer --quiet --rotate --all
# Запуск переиндексации каждые 30 минут
Sphinx — мощный инструмент для полнотекстового поиска, который при правильной настройке с легкостью справляется с большими объемами данных.
Прокси (proxy), или прокси-сервер — это программа-посредник, которая обеспечивает соединение между пользователем и интернет-ресурсом. Принцип…
Согласитесь, было бы неплохо соединить в одно сайт и приложение для смартфона. Если вы еще…
Повсеместное распространение смартфонов привело к огромному спросу на мобильные игры и приложения. Миллиарды пользователей гаджетов…
В перечне популярных чат-ботов с искусственным интеллектом Google Bard (Gemini) еще не пользуется такой популярностью…
Скрипт (англ. — сценарий), — это небольшая программа, как правило, для веб-интерфейса, выполняющая определенную задачу.…
Дедлайн (от англ. deadline — «крайний срок») — это конечная дата стачи проекта или задачи…