Не запускается индексация Sphinx на ubuntu 18

154
17 августа 2019, 06:50

Сервер 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. Сфинкс на него тоже ругается (см. второй скрин)

В чем заключается ошибка, и как ее исправить?

Answer 1

На скриншоте не видно запуска searchd. Видна только попытка остановки (searchd --stop). Попробуйте просто searchd (без --stop).

--rotate в indexer имеет смысл только при уже работающем searchd. Впрочем в данном случае бы тоже сработало, если б вы после indexer --rotate выполнили просто searchd, а не searchd --stop.

READ ALSO
Код группы ВКонтакте не расширяется на 100% [закрыт]

Код группы ВКонтакте не расширяется на 100% [закрыт]

Разместил на своём сайте код своей группы ВКонтакте, но она не расширяется на 100% как мне хотелось быКак быть?

87
увеличение переменной в цикле jinja2

увеличение переменной в цикле jinja2

Надо считать номер записи в циклеЕсть такой код, но он всегда выдаёт единицу

99