Sphinx search для Drupal 7.x в GentooПодписка на Комментарии к "Sphinx search для Drupal 7.x в Gentoo"

Аватар zenon

Возможности родного поиска Drupal невелики, и конечно же нет таких прелестей, как поддержка морфологического поиска.
Ещё одной отличительной особенностью является "родная" привязка к русскому языку изначально, а не появившаяся на какой-то из версий, как на Apache Solr (который к тому же написан на яве).
Основные возможности можно посмотреть в wiki.

Тут стоит упомянуть, что некоторые хостеры предлагают сразу подключить Sphinx search, такое увидел у dh.it-patrol.ru.
Самого модуля Sphinx для 7-го друпала на drupal.org сейчас ксожалению нет.
Зато он есть тут: ivinco.com
Теперь устанавливаем сам sphinx:

# emerge --ask app-misc/sphinx

Смотрим флаги, и включаем нужное:

# equery uses app-misc/sphinx
[ Legend : U - final flag setting for installation]
[        : I - package is installed with flag     ]
[ Colors : set, unset                             ]
 * Found these USE flags for app-misc/sphinx-2.0.9:
 U I
 - - debug    : Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see
                http://www.gentoo.org/proj/en/qa/backtraces.xml
 + + id64     : use 64-bit document and word IDs
 + + mysql    : Add mySQL Database support
 - - odbc     : Add ODBC Support (Open DataBase Connectivity)
 - - postgres : Add support for the postgresql database
 + + stemmer  : Enable language stemming support
 - - test     : Workaround to pull in packages needed to run with FEATURES=test. Portage-2.1.2 handles this internally, so don't set it in
                make.conf/package.use anymore

*** Важно - не устанавливайте dev-php/pecl-sphinx, иначе поиск не будет работать.
Теперь cкачиваем, и устанавливаем, как обычный модуль для друпала.
После чего в админке /admin/config/search/advanced_sphinx необходимо указать желаемый путь к конфигурационному файлу и создать его.
Теперь, чтобы пользоваться стандартным демоном searchd необходимо скопировать sphinx.conf в /etc/sphinx/.
В конфигурационном файле также указан путь, где будят хранится индексы sphinx, тут необходимо правильно назначить права на этот каталог, у меня веб сервер (nginx) работает от одноименного пользователя, поэтому назначаем владельца:

# chown -R nginx:nginx /path/to/drupal_root/sites/default/sphinx/index/

Перед запуском необходимо создать индексы:

# /usr/bin/indexer --all

Или, с указанием конфига:

# /usr/bin/indexer --config /etc/sphinx/sphinx.conf --all

Теперь можно запустить сервис:

# /etc/init.d/searchd start

И добавить его в автозагрузку:

# rc-update add searchd default

И еще один момент, обновление индексов вручную:

# /usr/bin/indexer --config /path/to/sphinx.conf --merge index_main index_delta \
             --merge-dst-range deleted 0 0 --rotate

Впрочем сервис searchd можно и не запускать, но тогда обновление и пересоздание индексов необходимо добавить в cron.
... Немного сумбурная вышла заметка, воспринимать как прямое руководство к действию не надо, обязательно включаем голову.
###
Лирическое отступление, к вопросу зачем:
[list]
[*]Сам поиск с помощью Sphinx отличается от стандартного Search гораздо большим быстродействием, дает меньшую нагрузку на сервер, более гибок в настройке (в частности, поддерживает возможность морфологического и других вариантов поиска). Надо только учитывать, что иногда стандартные варианты настройки хоть и универсальны, но могут не подходить к конкретному варианту. Соответственно придется вручную корректировать настройки поискового индекса. В этом еще одно преимущество над стандартным Search - там все настройки ограничены только тем, что дают модули, при использовании Sphinx вы уже можете использовать гораздо более простой модуль с интеграцией, а настроить параметры поиска через конфигурационный файл.

[*]В целом его имеет смысл использовать вместо стандартного в любом случае, где нужно более или менее гибкое решение и особенно при больших объемах данных (в частности при количестве материала более 1000 использование Sphinx позволит значительно снизить системную нагрузку на БД от сайта, а при количестве материала более 5000 обычный модуль Search скорее всего не справится.
[/list]
Ссылки:
Drupal 7.x Sphinx Search module
Инструкции по установке есть тут, написаны они немного обобщенно, и не только для Linux.
Официальный сайт.
Возможности и документация.
Ещё одна инструкция на друпал хостинге.

Похожие материалы:

Добавить комментарий