Sphinx и MySQL. Установка и использование движка SphinxSE
В продолжение темы о Sphinx, расскажу о SphinxSE, это движок для MySQL, который будет работать со Sphinx индексами непосредственно из MySQL.
Что такое SphinxSE?
Движок SphinxSE не хранит данные сам, а является звеном, которое позволяет серверу MySQL общаться с "searchd", запускать поисковые запросы и получать результаты поиска. Вся индексация и поиск происходит за пределами MySQL.
SphinxSE может быть собран только под MySQL 5.x используя архитектуру плагинов, которая не поддерживается в MySQL 4.x.
SphinxSE позволяет:
Легко портировать MySQL FTS (full-text search) приложения в Sphinx;
Использовать Sphinx, где невозможно использовать API, например если нет API для какого-то языка;
Оптимизировать добавленные Sphinx'ом результаты обработки на стороне MySQL, например: JOIN'ить результаты поиска с другими таблицами MySQL, добавлять дополнительную фильтрацию данных на стороне MySQL и т.д.
Обратите внимание, в download-листе Sphinx есть пункт "MySQL 5.0.45 with SphinxSE 0.9.8" и из ссылки "mysql-5.0.45-sphinxse-0.9.8-win32.zip" следует что это только для Win32.
Теперь, разархивируем:
# tar -xzf mysql-5.1.34.tar.gz
# tar -xzf sphinx-0.9.8.1.tar.gz
Скопируем сорцы SphinxSE в каталог распакованного нами MySQL:
Установим дополнительные движки, в том числе и Sphinx:
# ./configure --with-plugins=sphinx,innobase,archive,blackhole
# make && make install
Запускаем MySQL:
# /usr/local/etc/rc.d/mysql-server start
Войдем в MySQL-консоль и посмотрим какие есть у нас движки:
mysql> show engines;
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| CSV | YES | CSV storage engine | NO | NO | NO |
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
| InnoDB | YES | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| SPHINX | YES | Sphinx storage engine 0.9.8 | NO | NO | NO |
| MyISAM | DEFAULT | Default engine as of MySQL 3.23 with great performance | NO | NO | NO |
| ARCHIVE | YES | Archive storage engine | NO | NO | NO |
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
Движок мы установили, теперь попробуем его использовать!
Использование SphinxSE
Для примера продолжим работать с индексом "adw0rd_wp", который мы создали в прошлой статье про Sphinx.
Для начала создадим таблицу:
CREATE TABLE `test_sphinx`
(
`id` INTEGER NOT NULL,
`weight` INTEGER NOT NULL,
`query` VARCHAR(3072) NOT NULL,
`group_id` INTEGER,
INDEX(`query`)
) ENGINE=SPHINX CONNECTION="sphinx://localhost:3312/adw0rd_wp";
Обратите внимание, в download-листе Sphinx есть пункт «MySQL 5.0.45 with SphinxSE 0.9.8» и из ссылки «mysql-5.0.45-sphinxse-0.9.8-win32.zip» следует что это только для Win32.
какую версию мне лучше всего скачать под windows 7 x64 ?
Удобно, но пока мало информации в интеренет по данной фиче. Сравнение производительности произвести бы, как API и QL:
http://sphinxsearch.com/blog/2010/04/25/sphinxapi-vs-sphinxql-benchmark/
Комментарии
Обратите внимание, в download-листе Sphinx есть пункт «MySQL 5.0.45 with SphinxSE 0.9.8» и из ссылки «mysql-5.0.45-sphinxse-0.9.8-win32.zip» следует что это только для Win32.
какую версию мне лучше всего скачать под windows 7 x64 ?
Не знаю, не пользуюсь w7
жаль что процесс переноса на данную фичю еще довольно извращен
Удобно, но пока мало информации в интеренет по данной фиче. Сравнение производительности произвести бы, как API и QL:
http://sphinxsearch.com/blog/2010/04/25/sphinxapi-vs-sphinxql-benchmark/
Gray, ну тогда надо попросить Андрея чтобы сравнил, напишите туда каммент
address надо заменить на listen
вы это к чему?
ой немного не туда)
http://adw0rd.ru/2009/sphinxsearch/
вот тут address устарело в конфиге
Arvitaly, ну думаю статью то не надо менять из-за этого, много чего меняется :)
хотя сноску напишу рядом, спасибо что заметили
может заодно mariadb с портов вытащить ? там есть транзактивный MyISAM (Aria)
Оставьте свой комментарий