@NemuiSaburau

Почему не запускается индексация Sphinx?

Сервер 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 файл (сделал, но могу восстановить) и старый индекс. Все сделал, но мало что изменилось.
В итоге, при запуске индексации, получается такое:
5c406ed98a375755764308.png

Будто бы он выполнил эту индексацию, но файлов индекса в папке /var/lib/sphinxsearch/ нет (вообще никаких файлов нет).

Да, еще уточнение: в этой БД столбцом с уникальным номером сроки является столбец name. Сфинкс на него тоже ругается (см. скрин)

В чем заключается ошибка, и как ее исправить?
  • Вопрос задан
  • 399 просмотров
Решения вопроса 1
@NemuiSaburau Автор вопроса
Проблема №1 - не хватало места на сервере
Проблема №2 - были мелкие проблемы в настройках (уже забыл, где именно), плюс небольшая неточность в конфиге.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
PavelMonro
@PavelMonro
Он же пишет фатальную ошибку что не может открыть файл по пути, смотрите есть ли этот файл, права на него
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы