⚠️ Эта страница автоматически переведена, и перевод может быть несовершенным.

Migrating from Sphinx

В этой статье мы расскажем, как обновиться с Sphinx.
Manticore Search — это форк Sphinx Search 2.3. Хотя многие части кода были рефакторированы и улучшены, нет разрушительных изменений, требующих значительных усилий для обновления с Sphinx. В большинстве случаев процедура обновления такая же, как при переходе между минорными версиями Sphinx, и в основном сводится к замене бинарных исполняемых файлов.

Индексы

Manticore использует тот же формат индексов, что и Sphinx 2.x, и индексы, созданные в Sphinx, будут загружаться демоном Manticore. Переиндексация требуется только в случае использования индексов до Sphinx 2.2, которые используют атрибуты str2ordinal/str2wordcount, устаревшие в Sphinx 2.2.

Как общее правило, лучше сначала протестировать, проходит ли обновление без проблем, прежде чем выполнять его на рабочих экземплярах. При тестировании следует проверить, загружаются ли индексы без ошибок и работают ли обычные запросы как ожидается.

В случае распределённых индексов с удалёнными узлами мастер должен быть обновлён первым. Протокол API, используемый между мастером и узлами, получил некоторые обновления, но мастер всё ещё может общаться с узлами, используя более старую версию.

Конфигурация

В Manticore есть параметры, устаревшие по сравнению с Sphinx 2.3.2. Напоминаем, что в версии 2.3.1 были удалены режимы рабочих процессов prefork и fork. Кроме того, в Sphinx 2.2 такие опции, как charset_type, enable_star и max_matches, были удалены из sphinx.conf (max_matches остаётся настройкой запроса, но уже не глобальной). Стоит отметить, что режим словаря crc по‑прежнему поддерживается в Manticore, поскольку в некоторых случаях он может быть более выгодным, чем режим 'keywords'.

Запросы

При клиентском взаимодействии, если вы используете SphinxQL, ничего дополнительно на стороне клиента не требуется.

Если вы используете SphinxAPI, мы не вносили изменений в клиентскую библиотеку после форка, однако, если вы переходите с более старых версий Sphinx, вам следует обновить её до последней версии клиентской библиотеки API.

Плагин SphinxSE для MySQL давно не обновлялся, но в Manticore мы добавили поддержку движка FEDERATED, который является лучшим выбором, поскольку FEDERATED включён во все варианты MySQL (в отличие от SphinxSE, распространяемого только с MariaDB).

Сборка

Manticore перешёл с autotools на cmake. Код требует более новых версий компиляторов. Для получения дополнительной информации см. документацию compiling .

Обновление в Windows

Остановите сервис Sphinx.
Замените все старые исполняемые файлы и библиотеки новыми.
Существующий сервис, созданный Sphinx, может запускать Manticore без проблем. Если вы хотите заменить его, просто выполните searchd.exe --delete и searchd.exe --install.

Обновление из пакетов Linux

Пакеты Manticore используют тот же путь к файлу конфигурации: /etc/sphinxsearch/sphinx.conf или /etc/sphinx/sphinx.conf, в зависимости от дистрибутива.

Изменилось то, под каким пользователем работает searchd и какие каталоги используются. Sphinx запускался от пользователя sphinx/sphinxsearch и использовал каталоги /var/lib/sphinxsearch, /var/log/sphinxsearch и /var/run/sphinx.

Manticore работает от пользователя manticore, а каталоги по умолчанию: /var/lib/manticore, /var/log/manticore и /var/run/manticore.

Сначала остановите сервис Sphinx с помощью service sphinxsearch stop или systemctl stop sphinx, в зависимости от используемого дистрибутива.

Вы можете обновить напрямую, используя dpkg -i package или rpm -Uvh package, и выбрать сохранение существующего sphinx.conf.

Поскольку сервис Manticore использует /var/run/manticore для проверки наличия pid‑файла, единственное изменение, необходимое в sphinx.conf, — изменить расположение pid_file на /var/run/manticore/searchd.pid. Мы рекомендуем менять расположение pid‑файла в sphinx.conf, а не редактировать файл manticore.service, так как будущие обновления могут перезаписать изменения в файле сервиса, и потребуется повторное патч‑инг.

Далее необходимо установить права на существующие каталоги Sphinx для пользователя manticore.

На данном этапе вы можете запустить сервис Manticore с помощью service manticore start или systemctl start manticore.

Если вам нужна помощь с обновлением с Sphinx, не стесняйтесь обращаться в официальный Slack‑канал или на форумы .

Установить Manticore Search

Установить Manticore Search