Так выше смотри конфиг. Он заработал с пол пинка. Взят из примера в самом битриксе при включении поиска через сфинкс. Менял, насколько помню, только пути и память.
Описываю проблему, поиск на кириллице не работает, результат поиска выглядит вот так, в настройках конфига перепробовали почти все уловки. Вот наш конфиг, если кто знает решение можем даже заплатить.
Код
source bitrix
{
type = mysql
sql_host = localhost
sql_user = ****
sql_pass = ****
sql_db = 123pets
sql_port = 3306 # optional, default is 3306
sql_query_pre = SET NAMES utf8
sql_query_pre = SET CHARACTER SET utf8
sql_query = \
SELECT id, group_id, UNIX_TIMESTAMP(date_added) AS date_added, title, content \
FROM documents
sql_attr_uint = group_id
sql_attr_timestamp = date_added
sql_ranged_throttle = 0
sql_query_info = SELECT * FROM documents WHERE id=$id
}
# inherited source example
#
# all the parameters are copied from the parent source,
# and may then be overridden in this source definition
source bitrixthrottled : bitrix
{
sql_ranged_throttle = 100
}
#############################################################################
## index definition
#############################################################################
index bitrix
{
#main settings
type = rt
path = /var/lib/sphinxsearch/data/bitrix
source = 123pets
docinfo = inline
#choose appropriate type of morphology to use
#morphology = lemmatize_ru_all, lemmatize_en_all, lemmatize_de_all, stem_enru
morphology = stem_enru, soundex
#these settings are used by bitrix:search.title component
dict = keywords
prefix_fields = title
infix_fields=
min_prefix_len = 2
enable_star = 1
#all fields must be defined exactly as followed
rt_field = title
rt_field = body
rt_attr_uint = module_id
rt_attr_string = module
rt_attr_uint = item_id
rt_attr_string = item
rt_attr_uint = param1_id
rt_attr_string = param1
rt_attr_uint = param2_id
rt_attr_string = param2
rt_attr_timestamp = date_change
rt_attr_timestamp = date_to
rt_attr_timestamp = date_from
rt_attr_uint = custom_rank
rt_attr_multi = tags
rt_attr_multi = right
rt_attr_multi = site
rt_attr_multi = param
#depends on settings of your site
# uncomment for single byte character set
# charset_type = sbcs
# uncomment for UTF character set
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
}
#############################################################################
## indexer settings
#############################################################################
indexer
{
# memory limit, in bytes, kiloytes (16384K) or megabytes (256M)
# optional, default is 32M, max is 2047M, recommended is 256M to 1024M
mem_limit = 1024M
# maximum IO calls per second (for I/O throttling)
# optional, default is 0 (unlimited)
#
# max_iops = 40
# maximum IO call size, bytes (for I/O throttling)
# optional, default is 0 (unlimited)
#
# max_iosize = 1048576
# maximum xmlpipe2 field length, bytes
# optional, default is 2M
#
# max_xmlpipe2_field = 4M
# write buffer size, bytes
# several (currently up to 4) buffers will be allocated
# write buffers are allocated in addition to mem_limit
# optional, default is 1M
#
# write_buffer = 1M
# maximum file field adaptive buffer size
# optional, default is 8M, minimum is 1M
#
# max_file_field_buffer = 32M
}
#############################################################################
## searchd settings
#############################################################################
searchd
{
listen = 9312
listen = 9306:mysql41
log = /var/log/sphinxsearch/searchd.log
query_log = /var/log/sphinxsearch/query.log
read_timeout = 5
client_timeout = 300
max_children = 30
pid_file = /var/run/sphinxsearch/searchd.pid
max_matches = 1000
seamless_rotate = 1
preopen_indexes = 1
unlink_old = 1
mva_updates_pool = 1M
max_packet_size = 8M
max_filters = 256
max_filter_values = 4096
max_batch_queries = 32
workers = threads # for RT to work
}
# --eof--
Есть следующая задача На собственном сервере, без ВМ битрикса нужно настроить работу сфинкса в связке с битриксом, для того что бы ускорить поиск по сайту, а так же для использования словаря словоформ и синонимов при поиске.
Работа проделанная в данном направлении
На сервер установлен сфинкс
Обновлен битрикс до последней версии
В админке выставлен полнотекстовой поиск с помощью сфинкс и проведена переиндексация сайта
В итоге Штатный поиск на сайте не работает, то есть в списке результатов ничего не выводиться.
Вопросы
Кто-нибудь решал подобную задачу, возможно я что-нибудь упустил?
Где храниться конфиг, который битрикс указывает сфинксу при переиндексации?
Что толком должно быть написано в этом конфиге, так что бы поиск был по всем инфоблокам и каталогу?
1. Минимальный конфиг (например, если он по умолчанию хранится тут: /etc/sphinxsearch/sphinx.conf):
Код
#
# Minimal Sphinx configuration for Bitrix
#
searchd
{
listen = 9312
listen = 9306:mysql41
log = /var/log/sphinxsearch/searchd.log
query_log = /var/log/sphinxsearch/query.log
read_timeout = 5
max_children = 30
pid_file = /var/run/sphinxsearch/searchd.pid
max_matches = 1000
seamless_rotate = 1
preopen_indexes = 1
unlink_old = 1
workers = threads # for RT to work
binlog_path = /var/lib/sphinxsearch/data/
binlog_max_log_size = 512M
binlog_flush = 2
rt_flush_period = 3600
}
indexer
{
lemmatizer_cache = 128M
lemmatizer_base = /etc/sphinxsearch/dicts/
}
index bitrix
{
#main settings
type = rt
path = /var/lib/sphinxsearch/data/bitrix
docinfo = inline
#choose appropriate type of morphology to use
#morphology = lemmatize_ru_all, lemmatize_en_all, lemmatize_de_all, stem_enru
morphology = stem_enru, soundex
#these settings are used by bitrix:search.title component
dict = keywords
prefix_fields = title
infix_fields=
min_prefix_len = 2
enable_star = 1
#all fields must be defined exactly as followed
rt_field = title
rt_field = body
rt_attr_uint = module_id
rt_attr_string = module
rt_attr_uint = item_id
rt_attr_string = item
rt_attr_uint = param1_id
rt_attr_string = param1
rt_attr_uint = param2_id
rt_attr_string = param2
rt_attr_timestamp = date_change
rt_attr_timestamp = date_to
rt_attr_timestamp = date_from
rt_attr_uint = custom_rank
rt_attr_multi = tags
rt_attr_multi = right
rt_attr_multi = site
rt_attr_multi = param
#depends on settings of your site
# uncomment for single byte character set
charset_type = sbcs
# uncomment for UTF character set
#charset_type = utf-8
}
директивы, которые могут отличаться на разных окружениях: log query_log pid_file binlog_path lemmatizer_base path charset_type - зависит от кодировки сайта
2. Скачать морфологические словари тут - http://sphinxsearch.com/downloads/dicts/ (ru.pak, en.pak, de.pak) и скопировать их в папку из директивы - lemmatizer_base 3. Перезапустить sphinx 4. В настройках модуля Поиска в закладке "Морфология" выбрать поиск Sphinx, указать название индекса (в примере - bitrix, секция в конфиге - index bitrix). 5. Сделать переиндексацию в админке, там же в модуле Поиск. Если есть модуль Соц сеть, то перейти в публичку в режиме разработки в любой раздел социальной сети (где установлены компоненты socialnetwork, socialnetwork_group, socialnetwork_user) и сделать переиндексацию кнопкой "Индексация" в панели инструментов. Об этом сама система напомнит. 6. Все должно работать
А кто подскажет что, где и как исправить? Ситуация такая. Сфинкс нормально поставился. По названию элементов тоже ищет без проблем. Не ищет только по подстроке из свойства. Например в инфоблоке есть свойство цвет. Допустим зеленый. Так вот, если ввести "зелен", то не находит, а если ввести полностью "зеленый", то найдет.