Сервер VPS: Ubuntu 18.04, LAMP, Nginx, файрвол выключен. Установил Sphinx, с горем пополам настроил индексацию одной БД, все нормально (проиндексировалась), потом переделал для новой БД (старая оказалась не нужна, и ее индекс, соответственно, тоже).
Настроил конфиг сфинкса:
source table_sourse
{
# Тип данных (mysql, pgsql, mssql, xmlpipe, xmlpipe2, odbc)
type = mysql
# Необходимые параметры для подключения к базе данных
sql_host = localhost
sql_user = User
sql_pass = Pass
sql_db = table
sql_port = 3306
# пред-запрос, выполняется перед выполнением основного запроса на получение данных из базы (кодировка UTF-8)
sql_query_pre = SET NAMES utf8
# запрос, который получает данные документов для поиска (первое поле обязательно уникальный положительный ID документа)
sql_query = SELECT code, name, nds, posh FROM table
sql_attr_bigint = code
sql_attr_string = name
}
# индекс для поиска
index table
{
# Источник данных (таблица в БД) для индексирования
source = table
# Адрес, где будут хранится данные индекса
path = /home/user/data
# Индекс с учетом морфологии
morphology = stem_ru
# Минимальная длина слова для индексации
min_word_len = 1
# Кодировка
charset_type = utf-8
# Так и не понял, что это, поэтому закомментировал
# docinfo = extern
}
indexer
{
mem_limit = 1024M # лимит памяти для работы индексатора
}
# Поисковая служба
searchd
{
# какой порт и какой протокол "слушает" служба
listen = 9306:mysql41
# файл с логами
log = /var/log/sphinxsearch/searchd.log
# файл с логами поисковых запросов
query_log = /var/log/sphinxsearch/query.log
read_timeout = 60
max_children = 30
# PID file, searchd process ID file name
pid_file = /var/run/sphinxsearch/searchd.pid
seamless_rotate = 0
preopen_indexes = 1
unlink_old = 1
binlog_path = /var/lib/sphinxsearch/data
}
Перезагрузил сервер. Вошел как root, запускаю Сфинкс командой:
searchd
Получаю ошибку (ниже скрин). Проверяю запущенные процессы, сфинкса там нет. Пробую запустить индексацию:
sudo indexer --all
Тоже ошибка (скрин с двумя командами). Ругается на файл конфига
До этого рекомендовали мне удалить PID файл (сделал, но могу восстановить) и старый индекс. Все сделал, но мало что изменилось.
После исправлений, при индексации такое:
Будто бы он выплонил эту индексацию, но файлов индекса в папке /var/lib/sphinxsearch/ нет (вообще никаких файлов нет).
Да, еще уточнение: в этой БД столбцом с уникальным номером сроки является столбец name. Сфинкс на него тоже ругается (см. второй скрин)
В чем заключается ошибка, и как ее исправить?
На скриншоте не видно запуска searchd. Видна только попытка остановки (searchd --stop). Попробуйте просто searchd (без --stop).
--rotate в indexer имеет смысл только при уже работающем searchd. Впрочем в данном случае бы тоже сработало, если б вы после indexer --rotate выполнили просто searchd, а не searchd --stop.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Разместил на своём сайте код своей группы ВКонтакте, но она не расширяется на 100% как мне хотелось быКак быть?
Надо считать номер записи в циклеЕсть такой код, но он всегда выдаёт единицу