Уважаемые пользователи!
Напоминаем, что с 7 ноября 2020 года phpBB Group прекратила выпуск обновлений для phpBB версии 3.2.
С учетом этого, рекомендуется обновить конференции до версии 3.3.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до отдельного объявления.

Настройка поискового механизма Sphinx Fulltext в debian

Темы по наиболее часто задаваемым вопросам без привязки к версии phpBB. Читать в первую очередь!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB 3.1.x/3.2.x/3.3.x | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
владимир1983
phpBB 3.2.6
Сообщения: 5954
Стаж: 12 лет
Откуда: Сергиев Посад
Благодарил (а): 306 раз
Поблагодарили: 296 раз

Настройка поискового механизма Sphinx Fulltext в debian

Сообщение владимир1983 »

Авторизуймся в консоле под root.
Обновление портов

Код: Выделить всё

# apt-get update
Обновление системы

Код: Выделить всё

# apt-get upgrade
Установка Sphinx

Код: Выделить всё

# apt-get install sphinxsearch
Sphinx установлен!
Переходим в админ. раздел > Поиск
В качестве поискового механизма выбираем Sphinx Fulltext подтверждаем действие и переходим на страницу создания поисковых индексов.
Удаляем не используемые индексы и создаем индекс Sphinx Fulltext.
Возвращаемся обратно на страницу выбора поискового механизма для последующей конфигурации поискового механизма Sphinx Fulltext.
В настройке "Путь к папке с данными:" указываем дефолтный путь /var/run/sphinxsearch/ и нажимаем "Отправить".
phpbb нам сам создаст файл sphinx.conf конфига sphinx который мы и будем использовать и который должен располагаться в папке

Код: Выделить всё

/etc/sphinxsearch
.
С помощью текстового редактора, или же прямо с консоли (консольный редактор nano) создаем файл

Код: Выделить всё

# nano /etc/sphinxsearch/sphinx.conf
Копируем генерированные phpbb данные для файла sphinx.conf и вставляем в файл ctrl+v.
Нам потребуется всести некоторые изменения в файл, а именно надо будет добавить данные пользователя базы данных для соединения с базой демоном.
В файле найдите строки

Код: Выделить всё

	sql_user = [dbuser] 
	sql_pass = [dbpassword] 
тут нам надо заменить [dbpassword] на пароль от базы данных форума, и [dbuser] на пользователя базы данных. Эти значения можно посмотреть в файле config.php который расположен в корневой директории форума.
Пример данных из файла config.php форума:

Код: Выделить всё

$dbuser = 'qwertyuser';
$dbpasswd = '123456pass';
где qwertyuse - пользователь базы данных и 123456pass - пароль базы данных.
В итоге наших изменение у нас должно получится как то так

Код: Выделить всё

	sql_user = qwertyuse 
	sql_pass = 123456pass 
После создания файла конфига нам надо создать папку логов путь к которой указан в файле sphinx.conf

Код: Выделить всё

	log = /var/run/sphinxsearch/log/searchd.log 
	query_log = /var/run/sphinxsearch/log/sphinx-query.log 
и выставить ей владельца.
Создаем папку log

Код: Выделить всё

# mkdir /var/run/sphinxsearch/log
Назначаем владельцем папки log пользователя sphinxsearch который был автоматически создан системой при установке sphinxsearch.

Код: Выделить всё

# chown sphinxsearch /var/run/sphinxsearch/log
Основные настройки завершены.
Теперь необходимо с консоли запустить sphinx и и запустить основной индекс, но сперва добавим в автозапуск
Добавляем в демона автозапуск

Код: Выделить всё

# nano /etc/default/sphinxsearch

где START=no меняем на START=yes сохраняем изменения в файле Ctrl+O подтверждаем enter, выходим их редактора Ctrl+X.
Стартуем sphinx

Код: Выделить всё

# service sphinxsearch start
Создаем основной индекс

Код: Выделить всё

# indexer --config /etc/sphinxsearch/sphinx.conf --all
После того как будет создан основной индекс поиск на вашей конференции будет работать!
Добавляем в автозагрузку

Код: Выделить всё

# nano /etc/rc.local

Код: Выделить всё

/usr/local/bin/searchd --config /usr/local/etc/sphinx.conf
ctrl+o+enter
=============================
Пример работы форума phpbb 3.1 на поисковом механизме Sphinx Fulltext http://forum.volnistye.ru/
==========================
У кого возникнут какие трудности, давайте ковырять вместе. Никогда не использовал Sphinx, поэтому буду рад узнать что то новое.
За ваши деньги решу ваши проблемы. Стучи в ЛС.
Нет человека - нет проблемы. (c)
Аватара пользователя
Alecto
phpBB 3.0.12
Сообщения: 2857
Стаж: 12 лет 5 месяцев
Откуда: Украина! Харьков
Благодарил (а): 68 раз
Поблагодарили: 240 раз

Re: Настройка поискового механизма Sphinx Fulltext в debian

Сообщение Alecto »

А в чем преимущества по сравнению с майскл?
Аватара пользователя
владимир1983
phpBB 3.2.6
Сообщения: 5954
Стаж: 12 лет
Откуда: Сергиев Посад
Благодарил (а): 306 раз
Поблагодарили: 296 раз

Re: Настройка поискового механизма Sphinx Fulltext в debian

Сообщение владимир1983 »

Быстрота и легкость)
Надо будет в первый пост добавить задание для крона. Чтобы автоматом индекс дополнялся.

Добавлено спустя 1 минуту 17 секунд:
На больших базах данных он очень хорошо работает и не создает нагрузку.

Добавлено спустя 3 минуты 30 секунд:
http://sphinxsearch.com/docs/current.html
За ваши деньги решу ваши проблемы. Стучи в ЛС.
Нет человека - нет проблемы. (c)
Аватара пользователя
xisp
phpBB 3.0.0 RC7
Сообщения: 1798
Стаж: 10 лет
Благодарил (а): 101 раз
Поблагодарили: 91 раз
Забанен: Бессрочно

Re: Настройка поискового механизма Sphinx Fulltext в debian

Сообщение xisp »

Интересно! Сколько кушает процесс сфинкса в нормальном состоянии и при обновлении базы?
владимир1983 писал(а):Пример работы форума phpbb 3.1
При запросе "Попугай" сверху семь раз:
[phpBB Debug] PHP Warning: in file [ROOT]/ext/phpbbseo/usu/pagination.php on line 124: sprintf(): Too few arguments
Соответственно пагинация не пашет. Но это к СЕО моду.
phpBBex
Аватара пользователя
владимир1983
phpBB 3.2.6
Сообщения: 5954
Стаж: 12 лет
Откуда: Сергиев Посад
Благодарил (а): 306 раз
Поблагодарили: 296 раз

Re: Настройка поискового механизма Sphinx Fulltext в debian

Сообщение владимир1983 »

xisp писал(а):Сколько кушает процесс сфинкса в нормальном состоянии и при обновлении базы?
Не замерял. Для теста нужны какая либо реальная база гигов от 4. Генерировать такую таблицу на выбрку пока лень) Может ты?)
Но сфинкс не просто так хвалят... Он очень опционально настраиваемый под конкретные параметры сервера. И им по любому можно ресурсов отыграть без потери функционала. Если верить манам, то настроить можно все и по различным условвиям. Я не говорю про то что можно сделать все в одном и с выбором для пользователя в случае когда у тебя поиск с условиями. У сфинскса огромное число настраиваемых условий. Надо только настроить)
xisp писал(а):Но это к СЕО моду.
Видел. Пока бета даже и смотреть в ту сторону не надо.
За ваши деньги решу ваши проблемы. Стучи в ЛС.
Нет человека - нет проблемы. (c)
Аватара пользователя
xisp
phpBB 3.0.0 RC7
Сообщения: 1798
Стаж: 10 лет
Благодарил (а): 101 раз
Поблагодарили: 91 раз
Забанен: Бессрочно

Re: Настройка поискового механизма Sphinx Fulltext в debian

Сообщение xisp »

владимир1983 писал(а):Может ты?)
У меня столько данных нет, а рандом нерепрезентативен. А разве тестовая копия- недостаточная выборка? Форум у тебя вроде большой.

Хотя... У меня поиск юзают 3 раза в неделю :mrgreen:
phpBBex
Аватара пользователя
владимир1983
phpBB 3.2.6
Сообщения: 5954
Стаж: 12 лет
Откуда: Сергиев Посад
Благодарил (а): 306 раз
Поблагодарили: 296 раз

Re: Настройка поискового механизма Sphinx Fulltext в debian

Сообщение владимир1983 »

xisp писал(а):Сколько кушает процесс сфинкса в нормальном состоянии и при обновлении базы?
Хотя очень хороший вопрос. Надеюсь ты его потестишь)
Ну чисто теоретически мне кажется что на бд без поисковых весом около 2 гигов с таблицами муисам после индекса fulltext native будет около 3...
Если никак не ограничивать флуд запросы по поиску то имхо тут либо табле лок вынудит юзера заснуть, либо сервер по лимиту конекта времени отвалится. Можно нагрузить сервак до отказа если админ все оставил по умолчанию... В случае каких то ограничений по поисковым запросам, можно вычислить эти ограничения и немного превысив их создать максимально возможную нагрузку флуд запросами что в итоге приведет к общим диким тормозам скрипта... Если админ -АДМИН он конечно прошарит это все и отрубит, но сколько таких)))? Блокировкой LOCK TABLES - можно убить 95% админов которых я знаю).
В случае с инобдб и его построчной блокировкой все будет немного лучше... НО тут можно сожрать ресурсами отводимыми под буферы и прочую прелесть инобдб... Это немного сложнее, но кто знатет тот сделает)
Я сейчас не буду говорить про марию, про aria и те плюсы которые можно сделать на ней(минусы тоже есть). Надо все проверять).
Конечно в любом случае логи спасают админа от такой казалось бы примитивной "проблемы", но я по рекрутингу сталкивался с таким))) Значит оно ещё работает в отношении кого то?
При сфинксе такое не возможно, ты не сможешь при флуд атаке преодолеть выделенную на демона память. Он будет работать по уже созданному индексу не завтрагивая мускул и его таблицы и в случае превышения лимита просто отвалится и пере запустится. В худшем случае юзера ждет отлуп по поисковому запросу, но повторив через секунду запрос он получит выборку так как демон стартовал вновь.
xisp я в чем то заблуждаюсь?

Добавлено спустя 3 минуты 14 секунд:
xisp писал(а):Форум у тебя вроде большой.
Пока лень) Андерсона пинал на запуск сфинкса на тестовом phpbb 3.1 но он отвалился по уважительным причинам(
xisp писал(а):У меня поиск юзают 3 раза в неделю
Около 200 запросов в день. Тоже не много. Поэтому судить трудно
За ваши деньги решу ваши проблемы. Стучи в ЛС.
Нет человека - нет проблемы. (c)
Аватара пользователя
xisp
phpBB 3.0.0 RC7
Сообщения: 1798
Стаж: 10 лет
Благодарил (а): 101 раз
Поблагодарили: 91 раз
Забанен: Бессрочно

Re: Настройка поискового механизма Sphinx Fulltext в debian

Сообщение xisp »

владимир1983 писал(а):Надеюсь ты его потестишь)
Сразу после установки разве что. Какая там нагрузка от 65к сообщений?
владимир1983 писал(а):xisp я в чем то заблуждаюсь?
Всё верно.
phpBBex
Аватара пользователя
владимир1983
phpBB 3.2.6
Сообщения: 5954
Стаж: 12 лет
Откуда: Сергиев Посад
Благодарил (а): 306 раз
Поблагодарили: 296 раз

Re: Настройка поискового механизма Sphinx Fulltext в debian

Сообщение владимир1983 »

xisp писал(а):Какая там нагрузка от 65к сообщений?
Никакой там нагрузки нет при таких ничтожных данных).
Демон сфинска один раз делает основной индекс который ты запускаешь в ручную. На индекс пол гиговой базы с 135 000+ постов у меня ушло 4 секунды при лимите 256mb на демона с доступными мускулу по сумме 1.5 гига.
Это примерно так работает, phpbb создает отдельную таблицу в которую пишется так называемый дельта индекс(те посты и данные которые появились между запуском крон задачи сфинкса который дополняет основной индекс).
При добавлении поста(ов) эти данные пишутся в дельта индекс и ожидают индексации сфнксом в основной индекс(только после этого данные станут доступны для поиска), как только прошла задача крона и демон сфинкса сделал выборку из дельта индекса в основной индекс данные из таблицы удаляются и таблица ждет новых данных. Т.е мы ставим крон задачу:

Код: Выделить всё

 # nano /etc/crontab

где пишем запуск демона каждые пять минут на дельта индекс(данные по таблице в который находится дельта индекс расположены в конфиге сфинкса)

Код: Выделить всё

*/5 *   * * *   root    indexer --rotate --all > /dev/null 2>&1
Вот и все) Надо будет крон в первый ост добавить* Дельта индекс обновляеться каждые пять минут и данные из него добавляются в основной индекс (это настраиваемые параметры и размеры файлов для выборки из основного индекса)
Т.е. никакой нагрузки на phpbb нет, он просто транслятор того что ему отдает сфинкс. При базах от одного гига это очень ощутимо в выигрыше ресурсов.
Ну и конечно надо учесть что сфинкс обладает мега разнообразным количеством настроек и параметров. Т.е. можно действительно сделать поиск таким каким ты себе его представляешь удобным для твоих пользователей.
===================================
Буду рад если кто то кто юзал сфинкс и знает его изнутри, поделится с нами своими наработками!
За ваши деньги решу ваши проблемы. Стучи в ЛС.
Нет человека - нет проблемы. (c)
LBeaver
phpBB 1.4.4
Сообщения: 149
Стаж: 7 лет 6 месяцев
Благодарил (а): 46 раз
Поблагодарили: 41 раз

Re: Настройка поискового механизма Sphinx Fulltext в debian

Сообщение LBeaver »

владимир1983, какая версия Sphinx в Debian? На моём сервере версия 2.2.5 и она ругается на сгенерированный конфиг:

Код: Выделить всё

Starting sphinxsearch.
Sphinx 2.2.5-id64-release (r4825)
Copyright (c) 2001-2014, Andrew Aksyonoff
Copyright (c) 2008-2014, Sphinx Technologies Inc (http://sphinxsearch.com)

using config file '/usr/local/etc/sphinx.conf'...
WARNING: key 'sql_query_info' was permanently removed from Sphinx configuration. Refer to documentation for details.
WARNING: key 'charset_type' was permanently removed from Sphinx configuration. Refer to documentation for details.
ERROR: unknown key name 'compat_sphinxql_magics' in /usr/local/etc/sphinx.conf line 90 col 24.
FATAL: failed to parse config file '/usr/local/etc/sphinx.conf'
/usr/local/etc/rc.d/sphinxsearch: WARNING: failed to start sphinxsearch
Аватара пользователя
владимир1983
phpBB 3.2.6
Сообщения: 5954
Стаж: 12 лет
Откуда: Сергиев Посад
Благодарил (а): 306 раз
Поблагодарили: 296 раз

Re: Настройка поискового механизма Sphinx Fulltext в debian

Сообщение владимир1983 »

LBeaver у тебя последняя версия, а там многое что изменилось. Конфиг надо переписывать. Я пока не занимался этим.
Поставь версию с репов дебиана, там 2.0.4 лежит.
За ваши деньги решу ваши проблемы. Стучи в ЛС.
Нет человека - нет проблемы. (c)
Аватара пользователя
владимир1983
phpBB 3.2.6
Сообщения: 5954
Стаж: 12 лет
Откуда: Сергиев Посад
Благодарил (а): 306 раз
Поблагодарили: 296 раз

Re: Настройка поискового механизма Sphinx Fulltext в debian

Сообщение владимир1983 »

За ваши деньги решу ваши проблемы. Стучи в ЛС.
Нет человека - нет проблемы. (c)
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 4963
Стаж: 17 лет 4 месяца
Откуда: Питер
Благодарил (а): 153 раза
Поблагодарили: 658 раз

Re: Настройка поискового механизма Sphinx Fulltext в debian

Сообщение Siava »

Сам юзаю sphinx на phpbb2. Форум небольшой, около 600к сообщений, но поиску здорово помогает. Правда не получилось разобраться с сортировкой результатов по релевантности.
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb 2.0.x, 3.1.x 3.5.x)
Аватара пользователя
владимир1983
phpBB 3.2.6
Сообщения: 5954
Стаж: 12 лет
Откуда: Сергиев Посад
Благодарил (а): 306 раз
Поблагодарили: 296 раз

Re: Настройка поискового механизма Sphinx Fulltext в debian

Сообщение владимир1983 »

Siava а какая версия sphinx используется?
За ваши деньги решу ваши проблемы. Стучи в ЛС.
Нет человека - нет проблемы. (c)
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 4963
Стаж: 17 лет 4 месяца
Откуда: Питер
Благодарил (а): 153 раза
Поблагодарили: 658 раз

Re: Настройка поискового механизма Sphinx Fulltext в debian

Сообщение Siava »

владимир1983, 2.1.9. Насколько я понял, это последняя версия с поддержкой cp1251.
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb 2.0.x, 3.1.x 3.5.x)
Перенесено из форума Поддержка phpBB 3.1.x в форум FAQ 12.12.2021 19:44 модератором rxu

Вернуться в «FAQ»