|
|
|
|
|
|
|
|
|
|
Внимание: Некоторые шаги в этом документе, предназначенные для продвинутых пользователей, требуют root-доступ к веб-серверу (который в свою очередь, требует, чтобы у вас был веб-сервер с root-доступом, как правило, предназначенным для выделенного хостинга или VPS хостинга), и если вы не уверены, что вы это сделаете, лучше не пытайтесь.
IP.Board 3.x обеспечивает полную поддержку использования Sphinx для полнотекстового поиска контента на вашем сайте. Тем не менее, вы по-прежнему несете ответственность за установку и настройку Sphinx, так что данная статья поможет вам сделать так, что вы сможете использовать Sphinx для поиска контента в IP.Board 3.x.
Обратите внимание, что приложения должны определить шаблон Sphinx для того, чтобы их содержимое могло быть найдено. Если вы устанавливаете стороннее приложение, которое неверно определяет файл шаблона Sphinx, то оно не будет доступно для поиска через Sphinx.
Сначала вы должны установить сам Sphinx. Sphinx является поисковой системой, доступной на http://sphinxsearch.com . Документация на их сайте объясняет, как установить sphinx, но ниже мы приведем общие команды, которые вам необходимо будет выполнить.
Войдите на веб-сервера в качестве суперпользователя. Если у вас нет root-доступа на веб-сервер, обратитесь за помощью к вашему хостинг-провайдеру. Перейдите во временный каталог и скачайте sphinx. Распакуйте архив, и перейдите в распакованный каталог sphinx.
ПРИМЕЧАНИЕ: Команды приведенные ниже только для примера, на сайте может быть доступна более новая версия. Пожалуйста, перейдите на sphinxsearch.com, чтобы скачать последнюю стабильную версию.
cd /tmp wget http://sphinxsearch.com/downloads/sphinx-0.9.8.1.tar.gz tar xzvf sphinx-0.9.8.1.tar.gz cd sphinx-0.9.8.1
Далее вам необходимо скомпилировать и установить пакет
./configure make make install
Если вы получили сообщение об ошибке на любом из этих шагов, остановитесь и исправьте ее. Например, если Sphinx не может найти исполняемые файлы MySQL, вы можете указать, где они, передав »–with-mysql (path)» для команды ./configure.
Как только это будет сделано, Sphinx будет установлен и готов к использованию (хотя еще многое предстоит сделать).
Вам нужно будет скопировать файл api/sphinxapi.php в корневой каталог форума.
cp api/sphinxapi.php /path/to/forums/here
Далее, вы должны создать каталог, где Sphinx будет хранить лог-файлы и индексы. Предлагаемая директория - /var/sphinx, однако вы можете создать каталог там, где хотите. Только запомните, где вы его создали.
mkdir -p /var/sphinx/log
Теперь войдите в панель управления администратора IPB . Откройте Система → Системные настройки → Настройки поиска. Выберите «Тип поиска» - «Sphinx» в выпадающем меню и установите настройки Sphinx необходимым образом. В большинстве случаев нет необходимости менять настройки, но если вы создали директорию, отличную от /var/sphinx или вы установили Sphinx на ваш MySQL сервер с настройками мульти-сервера, вам необходимы соответствующие настройки. Сохраните настройки. Далее, зайдите в Система → Список модулей, нажмите на «Создать конфигурацию Sphinx». Вы увидите загружаемую копию sphinx.conf. Сохраните этот файл, затем загрузите его на ваш сервер (место размещения неважно, но запомните его).
Вернитесь в shell, вам необходимо индексировать содержимое форума для поиска. Это достаточно сложная задача, но даже с большой базой данных (4 миллиона сообщений или больше) это не займет много времени. Выполните следующие команды, заменив путь к файлу sphinx.conf.
/usr/local/bin/indexer --config /path/to/sphinx.conf —all
После окончания индексации необходимо запустить поисковый демон.
/usr/local/bin/searchd --config /path/to/sphinx.conf
Как только поисковый демон будет запущен, вы можете пользоваться поиском на вашем сайте. Проведите несколько быстрых тестов, чтобы убедиться, что все работает, прежде, чем двигаться дальше.
Осталось еще 2 шага.
Во-первых, вам необходимо создать два cron задания для обновления индексации через определенные интервалы. Одно из них будет перестраивать «delta» индекс (включая только новый контент) каждые 15 минут. Данная задача захватывает только новый контент, поэтому это не слишком ресурсозатратно.
Вторая задача будет полностью обновлять индексы раз в день (обеспечивая отредактированным сообщениям и прочему соответствующую переиндексацию). Для этого должен быть запланирован интервал, когда ваш сервер наименее загружен (например, в 4 часа утра).
crontab -e */15 * * * * /usr/local/bin/indexer --config /path/to/sphinx.conf core_search_delta members_search_delta forums_search_posts_delta forums_search_topics_delta --rotate 0 4 * * * /usr/local/bin/indexer --config /path/to/sphinx.conf --all —rotate
Опять же, не забудьте исправить путь к файлу sphinx.conf. Кроме того, обратите внимание, что для первой cron задачи необходимо указать, какие индексы мы хотим обновить (только _delta индексы). Должен быть установлен, по крайней мере, один индекс для каждого приложения, чтобы оно поддерживало поиск с помощью Sphinx. Таким образом, если вы установите приложения Календарь, Блог, Галерею и Файловый архив, вы должны внести изменения в задание следующим образом:
Если вы это не сделаете, то это будет просто означать, что новые данные для приложений не будут добавлены до полной переиндексации в 4 часа утра. Если вы сомневаетесь, просто найдите sphinx.conf файл, который вы загрузили для «_delta» и отметьте все найденные индексы с таким окончанием. В конце, перезагрузите сервер, если вы хотите убедиться, что Sphinx запускается при запуске сервера. Метод выполнения этого различен для разных систем, поэтому обратитесь к системному администратору, если вы в чем-то не уверены. Мы обычно используем на CentOS следующее:
nano /etc/init.d/rc.local
и добавьте к файлу
rm -f /var/sphinx/*.spl /usr/local/bin/searchd --config /path/to/sphinx.conf
Это позволит избежать затяжной блокировки файлов и перезапустить Sphinx. Настройка пути по мере необходимости.
Sphinx является отличной поисковой системой и может уменьшить использование ресурсов на серверах. Вам необходимы некоторые технические знания командной строки / Linux, но, настроив Sphinx один раз, вносить изменения в дальнейшем не потребуется (только при установке новых приложений, если вы хотите, чтобы поиск по их содержимому так же осуществлялся). Мы надеемся, что данная статья содержит информацию, необходимую для установки и использования Sphinx с IP.Board 3.
Работает на DokuWiki |