Установка SphinxSE

Очень хотел попробовать SphinxSE. Кто не знает – это интерфейс работы mysql-sphinx, когда в рамках существующего соединения с mysql можно делать запросы к Sphinx. Итак, подробности установки под катом.

Зачем?

Да, безусловно можно использовать клиент для PHP/Ruby для доступа к Sphinx с помощью бинарного протокола. Но, как сказали на последних ZfConf и DevConf, сначала все новые возвожности будут внедряться в SphinxQL протокол, а только потом уже в бинаный.

Кроме того, используя одно соединение мы экономим ресурсы сервера. Я уже и не говорю, что мы можем использовать например Doctrine ORM (при небольшой доработке) да и любые другие, для доступа к Sphinx. А значит нам надо будет писать гораздо меньше кода. Тем более, что в больших проектах, так или иначе уже используется какая-либо ORM.

Как будем ставить?

К сожалению скомпилить SphinxSE ни с MySQL ни с Percona Server мне не удалось. Долго я мучался, пока не узнал, что MariaDB версии > 5.2.2 содержит в себе уже интегрированный движок SpginxSE. Т.к. последние тесты показали, что XtraDB в MariaDB быстрее даже чем у самой Percona, переход меня не смутил.

As of MariaDB 5.2.2, the Sphinx storage engine is included in the source, binaries, and packages of MariaDB. SphinxSE is built as a dynamically loadable .so plugin.

Установка SphinxSE с MariaDB на Ubuntu 10.10

0. Бекапим базы. Обязательно!

1. Удаляем предыдущие версии MySQL/Percona
Смотрим какие есть пакеты, связанные с MySQL

и удаляем их

2. Получаем адреса репозитариев для своей версии ОС (http://downloads.askmonty.org/mariadb/repositories/).

Обратите внимание, версию выбираем 5.2! Далее среди различных репозитариев я предпочёл перконовский. В /etc/sources.list я добавил полученные на этой страничке адреса репозитариев:

3. Обновляем пакеты и устанавливаем саму Maria

Проверка установки

Теперь заходим в консоль базы:

Если вдруг движка SPHINX не будет в списке, активировать его можно следующей командой:

В качестве бонуса мы получили поддержку движка для хранения графов: OQGRAPH, который, кстати, тоже очень интересный 🙂

Напоминаю, что движок SphinxSE – это по сути прокси к самому sphinx, который должен быть установлен в системе. Для Ubuntu его можно поставить так:

Пример использования SphinxSE

По этой ссылке можно посмотреть пример использования SphinxSE:

http://kb.askmonty.org/v/about-sphinxse/2941/#basic-usage

Описание языка SphinxQL

 

4 Comments

  1. Вот никак не могут они сделать репозитарий для Ubuntu Natty, а ставить для Maverick совершенно не хочется.

    Спасибо за вводную. Давно уже хотел разобраться с этой интеграцией

    1. Моё мнение MariaDB (СУБД) – нет, а Maria(storage engine) – да, сыроватая ещё.

Leave a Comment