Делаю поиск на сайте. Локалка на винде. На ней с плясками и бубном, но запустить сфинкс удалось и под него модули/плагины сделать удалось. Настало время переноса на прод и приключений.
Дано:
Sphinx 3.4.1 - лежит в /root/sphinx-3.4.1
Файл sphinx.conf - лежит в /etc/sphinxsearch/sphinx.conf
Содержимое sphinx.conf
#
# Minimal Sphinx configuration sample (clean, simple, functional)
#
source virt
{
type = mysql
sql_host = 127.0.0.1
sql_user = тут юзер
sql_pass = тут пароль
sql_db = тут имя базы
sql_port = 3306 # optional, default is 3306
sql_query_pre = SET NAMES utf8
sql_query = \
SELECT ru.virtuemart_product_id as id, ru.product_s_desc, ru.product_desc, ru.product_name, prod.product_sku \
FROM e0bu9_virtuemart_products_ru_ru AS ru INNER JOIN e0bu9_virtuemart_products AS prod ON ru.virtuemart_product_id = prod.virtuemart_product_id
}
index virtuemart
{
source = virt
path = /var/www/ЧАСТЬ_ПУТИ/data/sphinx/data/virt
morphology = stem_enru
charset_table = 0..9, A..Z->a..z, _, a..z, \
U+410..U+42F->U+430..U+44F, U+430..U+44F, U+401->U+0435, U+451->U+0435
blend_chars = +, U+23
ignore_chars = U+AD
min_word_len = 2
html_strip = 1
}
indexer
{
mem_limit = 128M
}
searchd
{
listen = 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
seamless_rotate = 1
preopen_indexes = 1
unlink_old = 1
workers = threads # for RT to work
binlog_path = /var/www/ЧАСТЬ_ПУТИ/data/sphinx/data
}
Запускаем индексацию, находясь в /root/sphinx-3.4.1/bin/
indexer --all --config /etc/sphinxsearch/sphinx.conf
Индексация происходит нормально. Индексы ложатся там, где положено.
Запускаем
./searchd --config /etc/sphinxsearch/sphinx.conf и начинаются приключения.
Ошибки возникают самые разные. Чаще всего встречаются:
1. Не найден local index virtuemart.
Почитал, что для этого нужно перезапустить сфинкс. Остановили, запустили с указанием конфига Получаем:
~/sphinx-3.4.1/bin# ./searchd --config /etc/sphinxsearch/sphinx.conf
Sphinx 3.4.1 (commit efbcc65)
Copyright (c) 2001-2021, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)
using config file '/etc/sphinxsearch/sphinx.conf'...
listening on all interfaces, port=9312
precaching index 'virtuemart'
precached 1 indexes using 1 threads in 0.0 sec
Но при этом процесс может не запуститься. Ни в ISP в сетевых службах его может не быть, ни по pgrep PID не видно. Если запускается, то локальный индекс не видит. На локалке тот же конфиг (пути другие, понятно), работает.
2. Проблемы при перезапуске: вдруг находит одновременно sphinxdata и мой конфиг, пользует sphinxdata и там не находит конфига.
Лечится удалением в очередной раз sphinxdata, перезапуском. Но это весьма странно, так как при запуске путь к конфигу указываю.
Перечитал немало почти не существующей русскоязычной документации и более обильной англоязычной. Но воз и ныне там.
Подскажите, пожалуйста, как запустить эту ТВАРЬ!