Установка sphinx для windows

Игорь Чакрыгин

Sphinx — Установка и настройка

Не так давно я решил более подробно изучить замечательный механизм полнотекстового поиска, которыйносит название Sphinx. Вы наверняка слышали о нём. Его установка, настройка и использование действительно очень просты. Несмотря на это, при первой попытке разобраться во всех деталях могут возникнуть некоторые трудности.

В данной статье я хочу подробно описать процесс установки Sphinx в Windows. Данная статья рассчитана на людей, которые, также как и я, ещё мало знакомы со Sphinx (или совсем не знакомы). Опытные разработчики вряд ли найдут в ней что-то новое.

Шаг 1: Установка Sphinx

Первым делом скачаем последнюю версию Sphinx для Windows с сайта sphinxsearch.com. (На момент написания статьи это версия 2.1.1-beta).

Дистрибутив представляет собой zip-архив. Распакуем его, скопируем полученную папку на диск C и переименуем её в sphinx (изначально она называется sphinx-2.1.1-beta-win64-id64-full). Теперь утилиты, которые входят в состав Sphinx (такие как indexer.exe и searchd.exe), будут находиться в папке c:\sphinx\bin\. Выглядит это примерно так:

Основной интерес для нас представляет папка bin. В ней находятся все утилиты, которые мы будем использовать в дальнейшем. Также нам могут пригодиться файлы sphinx.conf.in и sphinx-min.conf.in, которые представляют собой шаблоны файлов конфигурации. Их можно использовать в качестве примеров при настройке Sphinx.

Шаг 2: Создание рабочей папки

Нам так же необходимо подготовить рабочую папку, в которой будут храниться файл конфигурации, индексы и логи. В папке sphinx создадим папку data, а в ней в свою очередь создадим пустой файл config.txt и папки index, log и binlog. Эти папки нужно создать заранее, т.к. Sphinx не сможет создать их сам (у меня, по крайней мере, не смог) и просто не запустится.

Шаг 3: Регистрация службы Sphinx

Чтобы запустить Sphinx, его необходимо зарегистрировать как службу Windows. Запустим командную строку от имени администратора и введём следующую команду:

При необходимости, удалить ранее установленную службу можно следующей командой:

Шаг 4: Запуск службы Sphinx

Попытка сразу запустить зарегистрированную службу Sphinx завершится неудачей. Дело в том, что наш файл конфигурации (c:\sphinx\data\config.txt) пока ещё пуст. Добавим в него следующие строки:

Я намеренно убрал все необязательные настройки, оставив только самые важные.

  • Настройка listen указывает, что Sphinx будет использовать порт 9306 и протокол mysql. Использование протокола mysql позволяет подключаться к Sphinx как к обычной базе данных MySQL.
  • Настройка pid_file указывает расположение pid-файла, который используется для внутренних нужд.
  • Настройки log и query_log указывают расположение файлов логов, в которые будут записываться все события.
  • Настройка binlog_path указывает расположение файлов, которые могут использоваться для восстановления данных real-time индексов после сбоя.
Читайте также:  Звуковой драйвер для windows 10 pro 64 bit

Помимо этого, для запуска службы Sphinx необходимо создать хотя бы один индекс. В одной из следующих статей я постараюсь рассказать о создании индексов подробнее, а пока просто создадим фейковый real-time индекс. Добавим в файл конфигурации следующие строки:

Теперь зайдём в Панель управления — Администрирование — Службы, найдём в списке службу Sphinx и запустим её. При следующем запуске компьютера эта служба должна будет запускаться автоматически.

Шаг 5: Первый запрос

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

С другими клиентами, такими как HeidiSQL, всё хуже, поскольку при подключении они пытаются выполнить некоторые команды, которые Sphinx просто не поддерживает (например, пытаются получить список баз данных или информацию о текущем пользователе). В результате подключение создать так и не получается.

Скачаем дистрибутив MySQL с сайта mysql.com. Распакуем скачанный zip-архив, скопируем полученную папку на диск C и переименуем её в mysql. Теперь утилиты, которые входят в состав MySQL (нас интересует только mysql.exe), будут находиться в папке c:\mysql\bin\.

Чтобы запустить консольный клиент и подключиться к Sphinx, откроем командную строку и введём команду:

Теперь мы можем выполнять различные запросы на языке SphinxQL. Поскольку у нас пока нет ни одного индекса (кроме индекса fake_index, который пуст и поэтому мало чем интересен) в качестве первого запроса получим статистику использования Sphinx. Введём следующую команду (точка с запятой в конце каждой команды является обязательной для консольного клиента):

Готово. Мы установили и настроили Sphinx, а также смогли выполнить одну команду. Можно переходить к созданию индексов.

Заключение

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

В следующей статье я постараюсь рассказать о создании индексов с использованием в качестве источников данных базы данных MS Sql Server и xml-фалов, а также приведу примеры запросов.

Приложение I – Установка и настройка Python Sphinx в ОС Windows¶

Установка¶

В данном разделе описана установка и настройка Python Sphinx в операционной системе Windows.

  1. Скачайте установочный файл интерпретатора языка программирования Python версии 3.5 – https://www.python.org.

  1. Запустите файл установки. На первом шаге поставьте галочку напротив Add Python 3.5 to PATH и нажмите Install Now.

  1. Дождитесь завершения установки интерпретатора.

  1. После установки интерпретатора необходимо установить модуль Python Sphinx, для этого откройте командную строку Пуск > cmd и выполните команду pip install sphinx .

На этом установка Python Sphinx закончена, можно переходить к сборке документации. Сборка осуществляется командой:

Читайте также:  Windows server не устанавливается драйвер

Сборка документации¶

Перед началом сборки создайте папку docs . Для примера создадим на рабочем столе папку Руководство , а в ней папку docs . Затем откройте командную строку Пуск > cmd и перейдите в папку с руководством, выполнив команду:

Подробнее о работе с командной строкой Windows смотрите Руководство по командной строке Windows.

Выполните команду sphinx-quickstart . Программа задаст ряд вопросов. Все настройки можно будет позже изменить в файле conf.py .

После выполнения стартового скрипта в папке docs появится следующая структура:

Makefile — содержит инструкции для генерации результирующего документа командой make.

build — директория, в которую будут помещены файлы в определенном формате после того, как будет запущен процесс их генерации.

source — директория, в которой располагаются исходные файлы.

index.rst — это корень проекта. Он соединяет документацию воедино, если она разделена на несколько файлов.

_static — в эту директорию помещаются все файлы, не являющиеся исходным кодом (например, изображения). Позже создаются связи этих файлов с директорией build.

conf.py — содержит конфигурационные параметры Sphinx, включая те, которые были выбраны при запуске sphinx-quickstart в окне терминала.

Чтобы выполнить сборку документации, перейдите в папку docs и выполните команду:

Будет выполнена сборка документации, в терминале появится информация о ходе сборки:

Собранные html-файлы появятся в папаке build\html .

Для удобства можно создать bat-файл, содержащий строку sphinx-build -b html source build\html . Подробнее смотрите Руководство по командной строке Windows.

Sphinx. Установка и настройка.

Поисковая машина Sphinx – это полнотекстовая поисковая система, которая бесплатна, быстра и масштабируема. Она предназначена для производительности и актуальности. Не имеет аналогов ни в одной традиционной базе данных.

Установка и настройка Sphinx на Linux

Чтобы установить Sphinx на сервер Ubuntu, введите:

Поисковая система Sphinx успешно установлена на сервер. После установки Sphinx нуждается в дополнительной настройке.

Настройка Sphinx

Конфигурации Sphinx должны храниться в файле sphinx.conf в каталоге /etc/sphinxsearch. Они состоят из трёх основных блоков: index, searchd и source. Описание каждого из них и общий вид конфигурационного файла можно найти ниже.

Для начала создайте конфигурационный файл:

Блок source

Блок source содержит описание источника данных для нашего индекса, параметров доступа к ним, атрибутов и правил их анализа.. Первый столбец sql_query должен содержать уникальный ID. Запрос SQL будет выполняться для каждого индекса, а затем передавать данные в индексный файл Sphinx.

Стоит отметить что раздел source конфигурации поддерживает наследование, и это весьма удобно, т.к. можно создать один source с настройками соединения с базой данных, и в остальных наследовать его, чтобы не дублировать одни и те же настройки.

Что еще интересного из настроек:

  • sql_query_range — запрос который должен возвращать минимальное и максимальное значение id индексируемых записей, парамаметр пригодится для ranged query.
  • sql_range_step — количество записей получаемых за одну итерацию в ranged query.

Sphinx

Sphinx — бесплатный поисковый движок. Он поможет создать быструю систему поиска информации по базе данных вашего сайта.

Читайте также:  Начал обновлять до windows 10

Установите Sphinx на аккаунт хостинга и настройте сайт для работы с ним.

Установка Sphinx

Подключитесь к аккаунту по SSH и скачайте дистрибутив с официального сайта: [username@server]$ wget ссылка_на_дистрибутив

Если вы размещаете готовый проект, выберите ту версию Sphinx, которую использовали при разработке сайта.

Распакуйте архив и переименуйте каталог с файлами движка:

[username@server]$ tar xvfz имя_архива.tar.gz
[username@server]$ mv имя_архива sphinx

Перейдите в директорию sphinx:

[username@server]$ cd sphinx

Дальнейший процесс установки зависит от выбранной вами версии программы.

Sphinx 2

Для сборки Sphinx 2 выполните команды:

[username@server sphinx]$ ./configure —prefix=/home/username/sphinx
[username@server sphinx]$ make
[username@server sphinx]$ make install

Перейдите в каталог etc:

[username@server sphinx]$ cd etc

Создайте конфигурационный файл sphinx.conf самостоятельно или воспользуйтесь шаблонами, входящими в дистрибутив. Мы взяли за основу файл sphinx-min.conf.dist, скопировали и переименовали его:

[username@server etc]$ cp sphinx-min.conf.dist sphinx.conf

Откройте файл в текстовом редакторе vim и укажите параметры подключения к базе данных:

[username@server etc]$ vim sphinx.conf

type = mysql
sql_host = localhost
sql_user = username_dbuser
sql_pass = password
sql_db = username_db
sql_port = 3306

Сохраните изменения и запустите Sphinx.

Sphinx 3

Sphinx 3 не нужно предварительно собирать, достаточно распаковать архив с программой и настроить конфигурационный файл. Он расположен в каталоге etc:

[username@server sphinx]$ cd etc

Мы используем входящий в дистрибутив шаблон sphinx-min.conf.dist. Скопируйте и переименуйте его:

[username@server etc]$ cp sphinx-min.conf.dist sphinx.conf

Откройте файл для редактирования и укажите параметры подключения к базе данных:

[username@server etc]$ vim sphinx.conf

type = mysql
sql_host = localhost
sql_user = username_dbuser
sql_pass = password
sql_db = username_db
sql_port = 3306

Нажмите Esc и по очереди выполните команды, чтобы изменить пути для размещения журналов работы Sphinx и индексов:

:%s/\/var\/data/\/home\/username\/sphinx\/data/
:%s/\/var\/log/\/home\/username\/sphinx\/log/

Сохраните изменения, выйдите из редактора и перейдите в каталог sphinx:

[username@server etc]$ cd ..

Создайте папки с именами log и data:

[username@server sphinx]$ mkdir log data

Теперь все готово к запуску движка.

Запуск Sphinx

Создайте файл с именем sphinx.sh в каталоге bin:

[username@server sphinx] cd bin
[username@server bin] vim sphinx.sh

Вставьте код скрипта в окно текстового редактора и сохраните изменения.

CONFIGFILE=»/home/username/sphinx/etc/sphinx.conf»
SPHINX=»/home/username/sphinx/bin/searchd -c $CONFIGFILE»

case «$1» in
start)
$SPHINX
;;
stop)
$SPHINX —stop
;;
restart)
$SPHINX —stop
sleep 2
$SPHINX
;;
status)
$SPHINX —status
;;
*)
echo «Unknown option $1»
;;
esac

С помощью sphinx.sh вы сможете быстро запускать (start), перезагружать (restart) и останавливать (stop) движок, а также смотреть статистику его работы (status).

Разрешите исполнение файла:

[username@server bin] chmod 755 sphinx.sh

Запустите Sphinx командой:

[username@server bin] ./sphinx.sh start

Проверьте, работает ли движок:

[username@server bin] ps -aux | grep sphinx

Если Sphinx запущен, вы увидите такой процесс:

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

Оцените статью