Установка SphinxSE плагином под Percona

3938

Установка SphinxSE плагином под Percona

Все команды вводятся через ssh подключение. Полный список для удобства.

* gpg --keyserver  hkp://keys.gnupg.net --recv-keys 9334A25F8507EFA5
* gpg -a --export 9334A25F8507EFA5 | apt-key add -
* nano /etc/apt/sources.list
deb http://repo.percona.com/apt lenny main
deb-src http://repo.percona.com/apt lenny main
ctrl+x+y+enter
* sudo apt-get update
* sudo apt-get install percona-server-server-5.5
* sudo apt-get install libmysqlclient-dev
* sudo apt-get install libreadline-dev
* sudo apt install systemtap-sdt-dev
* sudo apt-get install build-essential cmake libncurses5-dev libaio-dev bison
* sudo apt-get source percona-server-server-5.5
* tar xfz percona-server-5.5_5.5.61-38.13.orig.tar.gz
* wget http://sphinxsearch.com/files/sphinx-...
* tar -xzf sphinx-2.0.6-release.tar.gz
* mkdir ./percona-server-5.5.61-38.13/storage/sphinx
* cp ./sphinx-2.0.6-release/mysqlse/* ./percona-server-5.5.61-38.13/storage/sphinx/
* cd percona-server-5.5.61-38.13/
* rm -f CMakeCache.txt
* cmake . -DBUILD_CONFIG=mysql_release
* cd storage/sphinx/ && make
* cp ha_sphinx.so /usr/lib/mysql/plugin
* mysql -u root -p
* INSTALL PLUGIN sphinx SONAME 'ha_sphinx.so';
* show engines;

 

Percona Server & SphinxSE — обеспечивает высокую производительность индексации и поиска, позволяя делать запросы с помощью SphinxQL, языка на основе Structured Query Language (SQL). Наконец, Sphinx хорошо масштабируется, позволяя работать с миллиардами документов, охватывающих терабайты данных с возможностью распределенного поиска.

Описание компонентов

Sphinx (англ. SQL Phrase Index) — система полнотекстового поиска, разработанная Андреем Аксёновым и распространяемая по лицензии GNU GPL. Отличительной особенностью является высокая скорость индексации и поиска, а также интеграция с существующими СУБД (MySQL, PostgreSQL) и API для распространённых языков веб-программирования (официально поддерживаются PHP, Python, Java; существуют реализованные сообществом API для Perl, Ruby,.NET[1] и C++).

Основные возможности:

  • Высокая скорость индексации (до 10-15 МБ/сек на каждое процессорное ядро);
  • Высокая скорость поиска (до 150—250 запросов в секунду на каждое процессорное ядро с 1 000 000 документов);
  • Высокая масштабируемость (крупнейший известный кластер индексирует до 3 000 000 000 документов и поддерживает более 50 миллионов запросов в день);
  • Поддержка распределенного поиска;
  • Поддержка нескольких полей полнотекстового поиска в документе (до 32 по умолчанию);
  • Поддержка нескольких дополнительных атрибутов для каждого документа (то есть группы, временные метки и т. д.);
  • Поддержка стоп-слов;
  • Поддержка однобайтовых кодировок и UTF-8;
  • Поддержка морфологического поиска — имеются встроенные модули для английского, русского и чешского языков; доступны модули для французского, испанского, португальского, итальянского, румынского, немецкого, голландского, шведского, норвежского, датского, финского, венгерского языков;
  • Нативная поддержка PostgreSQL и MySQL;
  • Поддержка ODBC совместимых баз данных (MS SQLOracle и т. д.).

Percona Server является альтернативой MySQL с обратной совместимостью, которая работает намного быстрее и является более масштабируемой, легче контролируемой и настраиваемой, а также имеет функции, позволяющие сделать оперативные задачи проще. Разработчики ставили задачу поддержки облачных вычислений, доступа NoSQL, и использование всех преимуществ современных аппаратных средств, таких как SSD и флэш-память.

Особенности:

  • Масштабируемость: Управление большим числом транзакций; масштабирование на мощных серверах
  • Производительность: Percona Server с XtraDB — сверхбыстрый и имеет высокую совместимость
  • Надежность: Устойчивость к повреждению, репликации crash-safe
  • Управление: Оперативное резервное копирование, онлайн импорт / экспорт таблиц
  • Диагностика: Расширенное профилирование и инструментарий
  • Гибкость: Percona Server более настраиваемый и легче контролируемый

Порядок установки

Инструкция предназначена для Ubuntu 18.04. Можно скачать образ с официального сайта [1]. Цель: на дистрибутив Ubuntu установить связку Percona Mysql 5.5 и Sphinx 2.0.6, подключить поисковый движок SphinxSE в Mysql. 1. Устанавливаем ключи репозитория Percona:

gpg --keyserver  hkp://keys.gnupg.net --recv-keys 9334A25F8507EFA5
gpg -a --export 9334A25F8507EFA5 | apt-key add -

2.Редактируем файл источников:

nano /etc/apt/sources.list-

3.Вставляем ссылки на репозиторий Percona в /etc/apt/sources.list, заменяя bionic на название текущего дистрибутива:

deb http://repo.percona.com/apt bionic main
deb-src http://repo.percona.com/apt bionic main

4.Обновляем APT:

sudo apt-get update

5.Устанавливаем Percona:

sudo apt-get install percona-server-server-5.5

6.Cтавим необходимое окружение для компиляции и сборки:

sudo apt-get install libmysqlclient-dev
sudo apt-get install libreadline-dev
sudo apt-get install build-essential cmake libncurses5-dev libaio-dev bison
sudo apt install systemtap-sdt-dev

7.Выгружаем и разархивируем источники Percona:

sudo apt-get source percona-server-server-5.5
tar xfz percona-server-5.5_5.5.61-38.13.orig.tar.gz

8.Выгружаем и разархивируем источники SphinxSE:

wget http://sphinxsearch.com/files/sphinx-2.0.6-release.tar.gz
tar -xzf sphinx-2.0.6-release.tar.gz

9.Создаём папку для плагина SphinxSE:

mkdir ./percona-server-5.5.61-38.13/storage/sphinx

10.Копируем Sphinx в Percona:

cp ./sphinx-2.0.6-release/mysqlse/* ./percona-server-5.5.61-38.13/storage/sphinx/

11.Переходим в папку Percona:

cd percona-server-5.5.61-38.13/

12. Собираем патч для MYSQL:

rm -f CMakeCache.txt
cmake . -DBUILD_CONFIG=mysql_release
cd storage/sphinx/ && make

13. Копируем {mysql_source_dir}/storage/sphinx/ha_sphinx.so в папку плагинов MySQL (Percona server под Ubuntu по умолчанию ставит плагины в /usr/lib/mysql/plugin, актуальный путь до папки плагинов можно узнать в выводе команды ps ax | grep mysql) и перестраховываемся на случай, если у MySQL нет доступа к плагинам:

cp ha_sphinx.so /usr/lib/mysql/plugin
sudo chown -R mysql:mysql /usr/lib/mysql/plugin

14. Заходим в mysql:

mysql -u root -p

15.Устанавливаем плагин:

INSTALL PLUGIN sphinx SONAME 'ha_sphinx.so';

16.Проверяем конфигурацию:

show engines;

Вывод:

+--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+
| Engine             | Support | Comment                                                                    | Transactions | XA   | Savepoints |
+--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+
| MyISAM             | YES     | MyISAM storage engine                                                      | NO           | NO   | NO         |
| MRG_MYISAM         | YES     | Collection of identical MyISAM tables                                      | NO           | NO   | NO         |
| CSV                | YES     | CSV storage engine                                                         | NO           | NO   | NO         |
| BLACKHOLE          | YES     | /dev/null storage engine (anything you write to it disappears)             | NO           | NO   | NO         |
| MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables                  | NO           | NO   | NO         |
| SPHINX             | YES     | Sphinx storage engine 2.0.6-release                                        | NO           | NO   | NO         |
| PERFORMANCE_SCHEMA | YES     | Performance Schema                                                         | NO           | NO   | NO         |
| ARCHIVE            | YES     | Archive storage engine                                                     | NO           | NO   | NO         |
| InnoDB             | DEFAULT | Percona-XtraDB, Supports transactions, row-level locking, and foreign keys | YES          | YES  | YES        |
| FEDERATED          | NO      | Federated MySQL storage engine                                             | NULL         | NULL | NULL       |
+--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+
10 rows in set (0.00 sec)

17.Выходим из mysql

quit;

18.Скачиваем пакет sphinxsearch

sudo apt-get install sphinxsearch

19.Можно пользоваться возможностями SphinxSE!

источник