sphinx Проиндесировал. Но не ищет(((

Долго ковырялся в итоге результат

using config file '/etc/sphinx/sphinx.conf'...
indexing index 'topicsIndex'...
collected 18 docs, 0.1 MB
collected 41 attr values
sorted 0.0 Mvalues, 100.0% done
sorted 0.0 Mhits, 100.0% done
total 18 docs, 63807 bytes
total 0.014 sec, 4412960 bytes/sec, 1244.89 docs/sec
indexing index 'commentsIndex'...
collected 1 docs, 0.0 MB
sorted 0.0 Mhits, 100.0% done
total 1 docs, 40 bytes
total 0.001 sec, 34995 bytes/sec, 874.89 docs/sec
total 84 reads, 0.000 sec, 0.3 kb/call avg, 0.0 msec/call avg
total 20 writes, 0.000 sec, 3.5 kb/call avg, 0.0 msec/call avg


Но поиск один хрен не работает. В статьях пишется что необходимо добавить строку в /etc/rc.local
/usr/local/sphinx/bin/searchd --config /usr/local/sphinx/etc/sphinx.conf

Но если пройти по этим путям, то там такого нет. А сам конфиг у меня лежит в /etc/sphinx/sphinx.conf

А по пути /usr/local/ вобще нет файлов напоминающих о sphinx

8 комментариев

avatar
А разве так не понятно, что в при запуске searchd надо указать /etc/sphinx/sphinx.conf?
  • ewden
  • 0
avatar
А разве не понятно, что он не ищет? Все везде прописанно. Научитесь читать, я вроде по русски пишу.
avatar
Ах, раз вы читать умеете, то читайте тонны документации. Вы даже не указали, какая версия сфинкса, какая ОС и версия. А ещё дерзите.
avatar
Ну и плюс кофиг сфинкса…
avatar
using config file '/etc/sphinx/sphinx.conf'...
WARNING: key 'charset_type' was permanently removed from Sphinx configuration. R                                                                                        efer to documentation for details.
WARNING: key 'charset_type' was permanently removed from Sphinx configuration. R                                                                                        efer to documentation for details.
listening on 127.0.0.1:3312
precaching index 'topicsIndex'
WARNING: dict=crc deprecated, use dict=keywords instead
precaching index 'commentsIndex'
precached 2 indexes in 0.004 sec
FATAL: last message repeated 1 times
FATAL: failed to lock '/usr/local/sphinx/var/data/binlog.lock': 11 'Resource tem                                                                                        porarily unavailable'

Теперь вобще такую хрень выдает
avatar
Попробуй вот тут почитать, мне помогло livestreet.ru/blog/dev_documentation/13482.html

И вот тут тоже интересное решение

livestreet.ru/blog/questions/11067.html
  • yuran
  • +1
avatar
спасибо за ссылки.попробую
avatar
Короче я себе уже голову сломал… Не хочет работать и все тут… Версия LS последняя, версия сфинкса последняя, ОС Centos 6/ Кто может помочь?
using config file '/etc/sphinx/sphinx.conf'...
listening on UNIX socket /var/run/sphinx.socket
precaching index 'topicsIndex'
WARNING: index 'topicsIndex': preload: failed to open /var/lib/sphinx/data/topicsIndex.sph: No such file or directory; NOT SERVING
precaching index 'commentsIndex'
WARNING: index 'commentsIndex': preload: failed to open /var/lib/sphinx/data/commentsIndex.sph: No such file or directory; NOT SERVING
FATAL: no valid indexes to serve


Вот мой конфиг
#
# Minimal Sphinx configuration sample (clean, simple, functional)
#

#############################################################################
## data source definition
#############################################################################

source Source
{
	type			= mysql

	sql_host		= localhost
	sql_user		= DEL
	sql_pass		= DEL
	sql_db			= DEL
	sql_port		= 3306	# optional, default is 3306

# Для ускорения работы прописываем путь до MySQL-го UNIX-сокета (чтобы
	# операции с БД происходили не через TCP/IP стек сервера)
    	sql_sock	= /var/lib/mysql/mysql.sock

mysql_connect_flags = 32 # enable compression
	
sql_query_pre = SET NAMES utf8
sql_query_pre = SET SESSION query_cache_type=OFF	
}

source TopicsSource : Source
{                                                               
sql_query = \
SELECT t.topic_id, t.topic_title, UNIX_TIMESTAMP(t.topic_date_add) as topic_date_add, \
tc.topic_text, t.topic_publish, b.blog_title, u.user_login \
FROM dbprefix_topic t, dbprefix_topic_content tc, dbprefix_blog b, dbprefix_user u \
WHERE t.topic_id=tc.topic_id AND t.topic_publish=1 \
AND b.blog_id=t.blog_id AND t.user_id=u.user_id \
AND t.topic_id>=$start AND t.topic_id<=$end
 
sql_joined_field = tags from query; select topic_id, topic_tag_text \
from dbprefix_topic_tag order by topic_id ASC

sql_query_range = SELECT MIN(topic_id),MAX(topic_id) FROM dbprefix_topic
        
sql_range_step = 1000

sql_attr_bool = topic_publish

sql_attr_timestamp = topic_date_add

sql_attr_multi = uint tag from query; SELECT topic_id, topic_tag_id FROM dbprefix_topic_tag
}

source CommentsSource : Source
{
sql_query = \
SELECT m.comment_id, m.comment_text, UNIX_TIMESTAMP(m.comment_date) as comment_date, \
m.comment_delete, u.user_login \
FROM dbprefix_comment m, dbprefix_user u \
WHERE m.target_type='topic' AND m.comment_delete=0 AND m.comment_publish=1 AND m.user_id=u.user_id \
AND m.comment_id>=$start AND m.comment_id<=$end

sql_query_range = SELECT MIN(comment_id),MAX(comment_id) FROM dbprefix_comment

sql_range_step = 5000

sql_attr_bool = comment_delete

sql_attr_timestamp = comment_date
}

#############################################################################
## index definition
#############################################################################

index topicsIndex
{
source = TopicsSource

path = /var/lib/sphinx/data/topicsIndex

wordforms = /var/lib/sphinx/data/wordforms.txt

docinfo = extern

morphology = stem_enru
        
charset_type = utf-8

html_strip = 1

html_remove_elements = style, script, code
}

index commentsIndex : topicsIndex
{
source = CommentsSource

path = /var/lib/sphinx/data/commentsIndex
}

#############################################################################
## indexer settings
#############################################################################

indexer
{
mem_limit = 32M
}

#############################################################################
## searchd settings
#############################################################################

searchd
{	
listen = /var/run/sphinx.socket
	
log = /var/log/sphinx/searchd.log

query_log = /var/log/sphinx/query.log
                                     
read_timeout = 5
                                        
client_timeout = 300
                                           
max_children = 100
                   
pid_file = /var/run/sphinx/searchd.pid
                                            
workers	= threads

compat_sphinxql_magics = 0
}

# --eof--
— с ним не работает, не индексирует

А вот с этим индексирует но не ищет
#
# Minimal Sphinx configuration sample (clean, simple, functional)
#

source lsParentSource
{
	type			= mysql

	sql_host		= localhost
	sql_user		= DEL
	sql_pass		= DEL
	sql_db			= DEL
	sql_port		= 3306	# optional, default is 3306

# Для ускорения работы прописываем путь до MySQL-го UNIX-сокета (чтобы
	# операции с БД происходили не через TCP/IP стек сервера)
    	sql_sock	= /var/lib/mysql/mysql.sock

	mysql_connect_flags	= 32 # 32- включение сжатие при обмене данными с БД

	# Включам нужную кодировку соединения и выключаем кеш запросов
	sql_query_pre			= SET NAMES utf8
    	sql_query_pre			= SET SESSION query_cache_type=OFF
}

# Источник топиков
source topicsSource : lsParentSource
{
	# запрос на получения данных топиков
	sql_query		= \
		SELECT t_fast.topic_id, t_fast.topic_title, UNIX_TIMESTAMP(t_fast.topic_date_add) as topic_date_add, \
		tc.topic_text, t_fast.topic_publish \
		FROM prefix_topic as t_fast, prefix_topic_content AS tc \
		WHERE t_fast.topic_id=tc.topic_id AND t_fast.topic_id>=$start AND t_fast.topic_id<=$end

	# запрос для дробления получения топиков на неколько итераций
	sql_query_range		= SELECT MIN(topic_id),MAX(topic_id) FROM prefix_topic

	# сколько получать объектов за итерацию
	sql_range_step		= 1000

	# Указываем булевый атрибут критерия "топик опубликован". Для возможности указания этого критерия при поиске
	sql_attr_bool		= topic_publish

	# Атрибут даты добавления, типа "время"
	sql_attr_timestamp	= topic_date_add

	# мульти-аттрибут "теги топика"
	sql_attr_multi	= uint tag from query; SELECT topic_id, topic_tag_id FROM prefix_topic_tag

	sql_ranged_throttle	= 0
}

# Источник комментариев
source commentsSource : lsParentSource
{
	sql_query		= \
			SELECT comment_id, comment_text, UNIX_TIMESTAMP(comment_date) as comment_date, comment_delete \
			FROM prefix_comment \
			WHERE comment_id>=$start AND comment_id<=$end

	sql_query_range		= SELECT MIN(comment_id),MAX(comment_id) FROM prefix_comment
	sql_range_step		= 5000

	sql_attr_bool		= comment_delete
	sql_attr_timestamp	= comment_date
}

#######################
#
# Описываем индексы
#
#######################

index topicsIndex
{
	# Источник, который будет хранить данный индекса
	source			= topicsSource
	path			= /home/index1

	# Тип хранения аттрибутов
	docinfo			= extern

	mlock			= 0

	# Используемые морфологические движки
	morphology		= stem_enru, soundex, metaphone

	# Кодировака данных из источника
	charset_type		= utf-8

	# Из данных источника HTML-код нужно вырезать
	html_strip				= 1
}

# Индекс комментариев
index commentsIndex
{
	source			= commentsSource
	path			= /home/index2

	docinfo			= extern

	mlock			= 0

	morphology		= stem_enru, soundex, metaphone

	charset_type		= utf-8
}

#######################
#
# Настройки индексатора
#
#######################

indexer
{
	# Лимит памяти, который может использавать демон-индексатор
	mem_limit			= 32M
}

#######################
#
# Настройка демона-поисковика
#
#######################

searchd
{
        # Адрес, на котором будет прослушиваться порт
        listen                  = 127.0.0.1:3312

	# Лог-файл демона
	log					= /var/log/sphinx/searchd.log

	# Лог поисковых запросов. Если закомментировать,то логировать поисковые строки не будет
	query_log			= /var/log/sphinx/query.log

	# Время в секундах, которое ждет демон при обмене данными с клиентом. По исчерпании происходит разрыв коннекта
	read_timeout		= 5

	# Максимальное количество одновременно-обрабатываемых запросов. 0 означает дофига, а точнее без ограничения
	max_children		= 30

	# Файл, в который сохраняется PID-процесса при запуске
	pid_file			= /var/run/sphinx/searchd.pid
}
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.