LINUX.ORG.RU
решено ФорумAdmin

Настройка sphinx


0

1

Все привет.

Пытаюсь настроить поисковый движок Sphinx. Описал в конфиге source и indexer к нему.

source blahQuestions
{
        type                    = mysql

        sql_host                = localhost
        sql_user                = blahname
        sql_pass                = T3TXAxT8afpGPXJ9
        sql_db                  = blahdb
        sql_port                = 3306
        sql_sock                = /var/run/mysqld/mysqld.sock


        # mysql_connect_flags   = 32
        # mysql_ssl_cert        = /etc/ssl/client-cert.pem
        # mysql_ssl_key         = /etc/ssl/client-key.pem
        # mysql_ssl_ca          = /etc/ssl/cacert.pem

        sql_query_pre           = SET NAMES utf8
        sql_query_pre           = SET SESSION query_cache_type=OFF


        sql_query               = SELECT id, title, body FROM questions WHERE status = 1
        sql_query_info          = SELECT * FROM questions WHERE id=$id
}

index blahQuestions
{
        source                  = blahQuestions
        path                    = /var/sphinx/questions

        docinfo                 = extern
        mlock                   = 0
        morphology              = stem_en, stem_ru
        min_word_len            = 1
        charset_type            = utf-8
        charset_table           = 0..9, A..Z->a..z, _, a..z, U+410..U+42F->U+430..U+44F, U+430..U+44F
        html_strip              = 0
}

Стоит сказать, что если выполнить sql_query, то результаты MySQL выдаёт. Но при попытке выполнить indexer:

goot@blah:/var/sphinx# indexer --config /usr/local/etc/sphinx.conf
Sphinx 0.9.9-release (r2117)
Copyright (c) 2001-2009, Andrew Aksyonoff

using config file '/usr/local/etc/sphinx.conf'...
total 0 reads, 0.000 sec, 0.0 kb/call avg, 0.0 msec/call avg
total 0 writes, 0.000 sec, 0.0 kb/call avg, 0.0 msec/call avg

, получаю шиш с маслом. И соответственно файл с индексами не создаётся, что влечёт за собой:

goot@blah:/var/sphinx# search test
Sphinx 0.9.9-release (r2117)
Copyright (c) 2001-2009, Andrew Aksyonoff

using config file '/usr/local/etc/sphinx.conf'...
index 'cnikiQuestions': search error: failed to open /var/sphinx/questions.sph: No such file or directory.
★★★

Уп-с, ложная тревога, нужно было использовать indexer --rotate --config=/path/to/config

VirRaa ★★★
() автор топика
5 мая 2011 г.
Ответ на: комментарий от VirRaa

У меня проблема такая: При выполнении indexer --all пишет:

FATAL: no indexes found in config file './sphinx.conf'

Т.е. он конфиг читает но не находит индексов. Вот код конфига:

source test1 {
	# Параметры подключения к БД
	type = mysql
	sql_host = localhost
	sql_user = user
	sql_pass = 123
	sql_db = search_test
	sql_port = 3306
	
	# Установим кодировку для работы с БД
	sql_query_pre = SET NAMES utf8
	sql_query_pre = SET CHARACTER SET utf8

	# Запрос выборки данных для индексации
	sql_query = SELECT id, title, content FROM documents

	# Запрос доп. информации для вывода результата (используется утилитой "search")
	sql_query_info = SELECT * FROM documents WHERE id = $id

	# Время простоя (sleep) перед посылкой запросов серверу (предназначен для разгрузки сервера БД)
	# Если установите "= 1000", то засыпание будет длится 1 секунду
	sql_ranged_throttle = 0
}

index test1{
	# Использовать соответствующий source-блок настроек при индексации
	source = test1

	# Путь до файлов индекса
	path = d:/webservers/home/sphinx/index

	# Способ хранения индекса (none, inline, extern)
	# Подробнее http://www.sphinxsearch.com/docs/manual-0.9.8.html#conf-docinfo
	docinfo = extern

	# Memory lock (http://www.sphinxsearch.com/docs/manual-0.9.8.html#conf-mlock)
	mlock = 0

	# Использование английского и русского стемминга
	morphology = stem_enru

	# Минимальная длина индексируемого слова
	min_word_len = 2

	# Установка используемой кодировки
	charset_type = utf-8

	# Таблица символов (http://www.sphinxsearch.com/docs/manual-0.9.8.html#conf-charset-table)
	charset_table = 0..9, A..Z->a..z, _, a..z, U+410..U+42F->U+430..U+44F, U+430..U+44F

	# Минимальная длина инфикса (префикс в том числе)
	min_infix_len = 2

	# Использовать оператор усечения "*" (http://www.sphinxsearch.com/docs/manual-0.9.8.html#conf-enable-star)
	enable_star = 1
}

indexer {
	# Максимальный лимит используемой памяти RAM
	mem_limit = 32M
}

searchd {
	# Адрес сервера
	address = 127.0.0.1

	# Порт
	port = 3312

	# Лог
	log = d:/webservers/home/sphinx/log/searchd.log

	# Лог запросов
	query_log = d:/webservers/home/sphinx/log/query.log

	# Таймаут на соединение с сервером (в секундах). При истечении времени происходит обрыв
	read_timeout = 5

	# Максимальное кол-во потомков от процесса
	max_children = 30

	# Путь до pid-файла
	pid_file = d:/webservers/home/sphinx/log/searchd.pid

	# Максимальное кол-во результатов выдачи
	max_matches = 1000
}

anonymous
()
Ответ на: комментарий от anonymous

> index test1{

Попробуй поставить пробел между названием индекса и фигурной скобкой.

VirRaa ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.