Вы здесь

Сообщение об ошибке

Deprecated function: The each() function is deprecated. This message will be suppressed on further calls в функции menu_set_active_trail() (строка 2405 в файле /home/www/kwlsoft-ru/www/includes/menu.inc).

Sphinx и Drupal

Для интеграции Sphinx и Drupal можно использовать модуль Sphinxsearch

Устанавливаем Sphinx и подключаем модуль Sphinxsearch в Друпале.

apt-get install sphinxsearch

Файл настроек лежит в /etc/sphinxsearch/sphinx.conf. Если сайт работает через http, то источники данных настраиваются так:

source source_main0
{
        type                            = xmlpipe
        xmlpipe_command                 = /usr/bin/wget -O - -q -t 1 http://www.domain.ru/sphinxsearch_scripts/sphinxsearch_xmlpipe.php?mode=main\&id=0\&first_nid=0\&last_nid=49999
}
source source_main1 : source_main0
{
        xmlpipe_command             = /usr/bin/wget -O - -q -t 1 http://www.domain.ru/sphinxsearch_scripts/sphinxsearch_xmlpipe.php?mode=main\&id=1\&first_nid=50000
}


source source_delta : source_main0
{
  xmlpipe_command            = /usr/bin/wget -O - -q -t 1 http://www.domain.ru/sphinxsearch_scripts/sphinxsearch_xmlpipe.php?mode=delta
}

Для сайтов работающих по протоколу https, в командах помимо протокола нужно добавить ключ игнорирования проверки сертификата:

source source_main0
{
        type                            = xmlpipe
        xmlpipe_command                 = /usr/bin/wget -O - -q -t 1 https://www.domain.ru/sphinxsearch_scripts/sphinxsearch_xmlpipe.php?mode=main\&id=0\&first_nid=0\&last_nid=49999 --no-check-certificate
}
source source_main1 : source_main0
{
        xmlpipe_command             = /usr/bin/wget -O - -q -t 1 https://www.domain.ru/sphinxsearch_scripts/sphinxsearch_xmlpipe.php?mode=main\&id=1\&first_nid=50000 --no-check-certificate
}
  

source source_delta : source_main0
{
  xmlpipe_command            = /usr/bin/wget -O - -q -t 1 https://www.domain.ru/sphinxsearch_scripts/sphinxsearch_xmlpipe.php?mode=delta --no-check-certificate
}

Этот код указывает на метод и адрес получения данных индексатором. Для нормального запуска этой функции необходимо, чтобы папка "sphinxsearch_scripts" находилась в /path-to-drupal-root.

Далее описываем настройки индексов:

index index_main0
{
        source                                  = source_main0
        path                                    = /var/lib/sphinxsearch/data/main0
        docinfo                                 = extern
        morphology                              = stem_ru
        charset_type                            = utf-8
        charset_table                           = 0..9, A..Z->a..z, _, a..z, U+410..U+42F->U+430..U+44F, U+430..U+44F
        min_word_len                            = 1
        html_strip                              = 0
       # agent                                  = /home/user/sphinx/socket/sphinx.s
}

index index_main1 : index_main0
{
        source                                  = source_main1
        path                                    = /var/lib/sphinxsearch/data/main1
}

index index_join
{
        type                                    = distributed
        local                                   = index_main0
        local                                   = index_main1
        local                                   = source_delta
}

indexer
{
#       mem_limit                               = 1024M
#       write_buffer                            = 4M
        mem_limit                               = 32M
}

searchd
{
        #listen                          = /home/user/sphinx/socket/sphinx.s
        #listen                          = localhost:3312
        port                            = 9312
        log                             = /var/log/sphinxsearch/searchd.log
        query_log                       = /var/log/sphinxsearch/query.log
        read_timeout                    = 5
        max_children                    = 30
        pid_file                        = /var/run/sphinxsearch/searchd.pid
        max_matches                     = 1000
        seamless_rotate                 = 1
        preopen_indexes                 = 1
        unlink_old                      = 1

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

indexer --config /etc/sphinxsearch/sphinx.conf --all

После успешного заверешения работы индексатора можно запустить поискового демона:

searchd --config /etc/sphinxsearch/sphinx.conf

Для остановки поискового демона можно использовать команду:

searchd --config /etc/sphinxsearch/sphinx.conf --stop

Очистить процессы поискового демона:

killall searchd

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

Sphinxsearch