Ошибка подключения к серверу sphinx указанный индекс не найден

Пользователь 44828

Эксперт

Сообщений: 1132
Баллов: 198
Авторитет:

0

Рейтинг пользователя:

2

Регистрация: 01.07.2009

два сайта на одном сервере(лицензии разные)
сфикс установлен — на одном сайте подключен, работает
для вторго создаю 2 индекс в конфиге
в настройках модуля выбираю использовать сфинкс, указываю новый индекс и получаю ошибку

Код
Ошибка подключения к серверу Sphinx:
Указанный индекс не найден.

вот полный конфиг

Код
indexer
{
   mem_limit      = 32M
}


searchd
{
        listen                  = 127.0.0.1:9312
   listen         = 9306:mysql41
   log         = /var/log/sphinx/searchd.log
   query_log      = /var/log/sphinx/query.log
   read_timeout      = 5
   max_children      = 30
   pid_file      = /var/run/sphinx/searchd.pid
   max_matches      = 1000
   seamless_rotate      = 1
   preopen_indexes      = 1
   unlink_old      = 1
   workers         = threads # for RT to work
   binlog_path      = /var/lib/sphinx
}



source art
{
   type         = mysql
   sql_host      = localhost
   sql_user      = ******
   sql_pass      = *******
   sql_db         = ******
   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
 
}

source trv
{
   type         = mysql
   sql_host      = localhost
   sql_user      = ****
   sql_pass      = ****
   sql_db         = ****
   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
 
}

index bitrix_art
{
   #main settings
   source         = art
      type = rt
      path = /var/lib/sphinx/bitrix_art
      docinfo = inline
      morphology = stem_enru, soundex
      dict = keywords
      prefix_fields = title
      infix_fields=
      min_prefix_len = 2
      enable_star = 1
      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
      charset_type = sbcs
}

index bitrix_trv
{
   #main settings
   source         = trv
      type = rt
      path = /var/lib/sphinx/bitrix_trv
      docinfo = inline
      morphology = stem_enru, soundex
      dict = keywords
      prefix_fields = title
      infix_fields=
      min_prefix_len = 2
      enable_star = 1
      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
      charset_type = sbcs
}
 

в чем может быть проблема
при запуске из консоли выдает

Код
indexer --all --rotate
Sphinx 2.0.8-id64-release (r3831)
Copyright (c) 2001-2012, Andrew Aksyonoff
Copyright (c) 2008-2012, Sphinx Technologies Inc (http://sphinxsearch.com)

using config file '/etc/sphinx/sphinx.conf'...
skipping non-plain index 'bitrix_art'...
skipping non-plain index 'bitrix_trv'...
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
 

I have a RoR app with Posgresql as database. I’m trying to setup search functionality by using Sphinx as search engine and Thinking Sphinx gem. I’ve installed sphinx with mysql and postgresql support, thinking sphinx v3 gem and it’s dependencies.

The command

rake ts:index

performs without errors. Log says that I have 20 docs indexed (all my records of Post model).
Then I’ve tried to create controller and view for search results page. Here’s the Controller’s search action

def search
    @query = Riddle::Query.escape(params[:q])
    @posts = Post.search(@query)
end

And when I try to use @posts variable in search view

localhost:3000/search?q=hello

I have following error.

ThinkingSphinx::ConnectionError in Main#search

Error connecting to Sphinx via the MySQL protocol. Error connecting to Sphinx via the MySQL protocol. Can’t connect to MySQL server on ‘127.0.0.1’ (61) — SELECT * FROM post_core WHERE MATCH(‘hello’) AND sphinx_deleted = 0 LIMIT 0, 20; SHOW META

Community's user avatar

asked Nov 27, 2014 at 18:37

femalemoustache's user avatar

The ts:index task just stores the Sphinx data, it doesn’t start the daemon which responds to search requests. You need to run ts:start rake task for this to happen.

Also: ts:rebuild does all of this at once: stops Sphinx (if it’s running), indexes data, starts Sphinx.

answered Nov 28, 2014 at 3:43

pat's user avatar

patpat

16k4 gold badges40 silver badges46 bronze badges

0

Thinking Sphinx uses mysql for its internal purposes and you have to add mysql2 gem to your stack, e.g:

gem 'mysql2', '~> 0.3.13'
gem 'thinking-sphinx', '~> 3.1.1'

answered Nov 27, 2014 at 18:52

blelump's user avatar

blelumpblelump

3,2231 gold badge15 silver badges20 bronze badges

I was stuck at all and facing the same error, Finally I found that I have not installed «Sphinx» on my local system with this command,

sudo apt-get update
sudo apt-get install sphinxsearch

More detail regarding installation you can find here

https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-sphinx-on-ubuntu-14-04

Make sure you should also have installed «mysql-server» on your system to create connection.

Also I looked @blelump’s answer was my second step. You should include those gems too in order to run with sphinx.

Then move to @pat’s answer was my final step to go, When you installed sphinx it will start service but you need to stop service to run,

rake ts:index
rake ts:rebuild

Here to go with SPHINX.

answered Oct 9, 2015 at 4:44

SSR's user avatar

SSRSSR

6,3784 gold badges33 silver badges50 bronze badges

I have a RoR app with Posgresql as database. I’m trying to setup search functionality by using Sphinx as search engine and Thinking Sphinx gem. I’ve installed sphinx with mysql and postgresql support, thinking sphinx v3 gem and it’s dependencies.

The command

rake ts:index

performs without errors. Log says that I have 20 docs indexed (all my records of Post model).
Then I’ve tried to create controller and view for search results page. Here’s the Controller’s search action

def search
    @query = Riddle::Query.escape(params[:q])
    @posts = Post.search(@query)
end

And when I try to use @posts variable in search view

localhost:3000/search?q=hello

I have following error.

ThinkingSphinx::ConnectionError in Main#search

Error connecting to Sphinx via the MySQL protocol. Error connecting to Sphinx via the MySQL protocol. Can’t connect to MySQL server on ‘127.0.0.1’ (61) — SELECT * FROM post_core WHERE MATCH(‘hello’) AND sphinx_deleted = 0 LIMIT 0, 20; SHOW META

Community's user avatar

asked Nov 27, 2014 at 18:37

femalemoustache's user avatar

The ts:index task just stores the Sphinx data, it doesn’t start the daemon which responds to search requests. You need to run ts:start rake task for this to happen.

Also: ts:rebuild does all of this at once: stops Sphinx (if it’s running), indexes data, starts Sphinx.

answered Nov 28, 2014 at 3:43

pat's user avatar

patpat

16k4 gold badges40 silver badges46 bronze badges

0

Thinking Sphinx uses mysql for its internal purposes and you have to add mysql2 gem to your stack, e.g:

gem 'mysql2', '~> 0.3.13'
gem 'thinking-sphinx', '~> 3.1.1'

answered Nov 27, 2014 at 18:52

blelump's user avatar

blelumpblelump

3,2231 gold badge15 silver badges20 bronze badges

I was stuck at all and facing the same error, Finally I found that I have not installed «Sphinx» on my local system with this command,

sudo apt-get update
sudo apt-get install sphinxsearch

More detail regarding installation you can find here

https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-sphinx-on-ubuntu-14-04

Make sure you should also have installed «mysql-server» on your system to create connection.

Also I looked @blelump’s answer was my second step. You should include those gems too in order to run with sphinx.

Then move to @pat’s answer was my final step to go, When you installed sphinx it will start service but you need to stop service to run,

rake ts:index
rake ts:rebuild

Here to go with SPHINX.

answered Oct 9, 2015 at 4:44

SSR's user avatar

SSRSSR

6,3784 gold badges33 silver badges50 bronze badges

  • Главная
  • Новые

Не делает индексацию..

/usr/local/sphinx/bin/indexer —all
Sphinx 2.0.9-release (rel20-r4115)
Copyright (c) 2001-2013, Andrew Aksyonoff
Copyright (c) 2008-2013, Sphinx Technologies Inc (http://sphinxsearch.com)

using config file ‘/usr/local/sphinx/etc/sphinx.conf’…
indexing index ‘nameuser_prefix_topicsIndex’…
ERROR: index ‘nameuser_prefix_topicsIndex’: sql_connect: Lost connection to MySQL server at ‘reading initial communication packet’, system error: 0 (DSN=mysql://nameuser:***@ip.ip.ip.ip:port/nameuser).
total 0 docs, 0 bytes
total 60.058 sec, 0 bytes/sec, 0.00 docs/sec
indexing index ‘nameuser_prefix_commentsIndex’…
FATAL: failed to lock /var/lib/sphinxsearch/data/nameuser_prefix_data/commentsIndex.spl: Resource temporarily unavailable, will not index. Try —rotate option.

Система Debian 6.0 squeeze
Делал по инструкции http://ls.vaktive.ru/setup-server/1/ustanovka-i-nastroyka-sphinx-205-debian-60-squeeze.html


Похожие статьи

  • Ошибка в плагине «Гостевые комментарии»

    Устанавливаю плагин «Гостевые комментарии», побывал разные версии: из каталога 1.1.9 и с гитхаба 1.1.10 на AltoCMS 1.1.29

    В настройках указываю обязательный email адрес, нажимаю сохранить и вылетает такая ошибка…

  • Настройка страниц

    Как настроить созданные страницы, чтобы были доступны: имясайт.ru/page/about.html а не имясайт.ru/page/about/

    Меняю в админке URL, выдает ошибку:

    И как можно вообще убрать слово «page». Чтобы адрес был как в…

  • Importer

    Добрый день.
    1) нет темы данного плагина
    2) нет описания как его настроить под Alto, кто разобрался поделитесь своим опытом пожалуйста. Лично я вам буду благодарен.
    3) может вы что-то добавили, или переделали в…

  • Про секретную админку, поддомены и прочие тонкости маршрутизации в Alto CMS

    Довольно часто встречаются такие вопросы:
    А как сделать, чтобы админка работала не по адресу site.com/admin, а по секретному адресу, который знаю только я? Или вопрос из этой же серии: как сделать, чтоб блоги…


У меня проблема с запуском и работой с sphinx. Мне удалось запустить indexer --all, но теперь я хочу выполнить поиск, и у меня постоянно появляется эта ошибка при запуске searchd --status.

WARNING: failed to connect to 127.0.0.1:9312: Connection refused

WARNING: failed to connect to 0.0.0.0:9306: Connection refused

FATAL: failed to connect to daemon: please specify listen with sphinx protocol in your config file

Sphinx query () возвращает false, и я предполагаю, что это связано с проблемой подключения.

Вот часть моего файла .conf.

searchd
{
    listen                  = 127.0.0.1:9312
    listen          = 9306:sphinx
    listen          = 2471:mysql41
    log         = /var/log/sphinx/searchd.log
    query_log       = /var/log/sphinx/query.log
    max_matches     = 1000
    read_timeout        = 5
    max_children        = 30
    pid_file        = /var/run/sphinx/searchd.pid
    seamless_rotate     = 1
    preopen_indexes     = 1
    unlink_old      = 1
    workers         = threads # for RT to work
    binlog_path     = /var/lib/sphinx
 }

Что мне не хватает в настройке портов прослушивания?

1 ответ

Лучший ответ

Как отмечено в комментариях, означает, что демон searchd не работает на самом деле.

Можно попробовать использовать searchd для запуска демона (и более позднего searchd --stop), который может показывать ошибки, которые вы могли не увидеть при запуске service / init.d.

(потому что, если сам файл журнала не работает, ошибкам некуда идти :)


2

barryhunter
17 Сен 2014 в 22:19

I have a problem starting and working with sphinx.
I was able to run indexer --all, but now I want to search it, and I keep getting this error when I run searchd --status.

WARNING: failed to connect to 127.0.0.1:9312: Connection refused

WARNING: failed to connect to 0.0.0.0:9306: Connection refused

FATAL: failed to connect to daemon: please specify listen with sphinx protocol in your config file

sphinx query() returns false, and I guess that’s related to connection problem.

Here’s the part of my .conf file.

searchd
{
    listen                  = 127.0.0.1:9312
    listen          = 9306:sphinx
    listen          = 2471:mysql41
    log         = /var/log/sphinx/searchd.log
    query_log       = /var/log/sphinx/query.log
    max_matches     = 1000
    read_timeout        = 5
    max_children        = 30
    pid_file        = /var/run/sphinx/searchd.pid
    seamless_rotate     = 1
    preopen_indexes     = 1
    unlink_old      = 1
    workers         = threads # for RT to work
    binlog_path     = /var/lib/sphinx
 }

What am I missing in configuration of listening ports?

asked Sep 17, 2014 at 17:24

Ned's user avatar

6

As noted in comments, indicates searchd daemon not actully running.

Can try using searchd to start the daemon (and later searchd --stop), which can show errors you might not see with using service/init.d starting.

(because if the log file itself is not functional, there is nowhere for errors to go :)

answered Sep 17, 2014 at 18:19

barryhunter's user avatar

barryhunterbarryhunter

20.9k3 gold badges29 silver badges43 bronze badges

Я пытаюсь настроить поисковик sphinx на сервере.

На сервере уже есть другой демон поиска sphinx, который запускается от другого пользователя для другого сайта с другим файлом конфигурации (порт 3312).

Вот мой конфигурационный файл sphinx /opt/sphinx/etc/site-sphinx.conf

source site_source
{
type        = mysql
sql_host    = localhost
sql_user    = username
sql_pass    = password
sql_db      = dbname
sql_port    = 3306
sql_sock    = /var/run/mysqld/mysqld.sock

mysql_connect_flags = 32

sql_query_pre       = SET NAMES utf8
sql_query_pre       = SET SESSION query_cache_type=ON

sql_query = SELECT id, title, description, is_deleted, created_at, updated_at FROM table WHERE is_deleted = 0

sql_attr_bool       = is_deleted
sql_attr_timestamp  = created_at
sql_attr_timestamp  = updated_at

sql_ranged_throttle = 0
}

index sitename
{
type                = plain
source              = site_source

path                = /opt/sphinx/var/data/site_index/site
docinfo             = extern
dict                = keywords
mlock               = 0
morphology          = stem_en, stem_ru, soundex, metaphone

enable_star         = 1
min_stemming_len    = 1
min_word_len        = 1
min_infix_len       = 3

html_strip          = 1
html_remove_elements    = style, script
}

indexer
{
mem_limit                   = 1024M
}

searchd
{
listen                  = 127.0.0.1:3313
log                     = /opt/sphinx/var/log/site/search.log
query_log               = /opt/sphinx/var/log/site/query.log
binlog_path             = /opt/sphinx/var/data/site_binlog

read_timeout            = 5
max_children            = 30
pid_file                = /opt/sphinx/var/run/searchd-site.pid
}

Я должен начать sphinxd

site@servername:~$ /opt/sphinx/bin/searchd --config /opt/sphinx/etc/site-sphinx.conf
Sphinx 2.2.9-id64-release (rel22-r5006)
Copyright (c) 2001-2015, Andrew Aksyonoff
Copyright (c) 2008-2015, Sphinx Technologies Inc (http://sphinxsearch.com)

using config file '/opt/sphinx/etc/site-sphinx.conf'...
WARNING: key 'enable_star' was permanently removed from Sphinx configuration. Refer to documentation for details.
listening on 127.0.0.1:3313
precaching index 'site'
precached 1 indexes in 0.051 sec


shapoval@sitename$ netstat -nlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:3313          0.0.0.0:*               LISTEN      21225/searchd
tcp        0      0 127.0.0.1:3312          0.0.0.0:*               LISTEN      26694/searchd
tcp6       0      0 :::3306                 :::*                    LISTEN      16998/mysqld

И я должен начать индексирование

site@servername:~$ /opt/sphinx/bin/indexer --all --rotate --config /opt/sphinx/etc/site-sphinx.conf delta
using config file '/opt/sphinx/etc/site-sphinx.conf'...
WARNING: key 'enable_star' was permanently removed from Sphinx configuration. Refer to documentation for details.
indexing index 'site'...
WARNING: index 'site': dict=keywords and prefixes and morphology enabled, forcing index_exact_words=1
collected 1660326 docs, 674.2 MB
sorted 231.9 Mhits, 100.0% done
total 1660326 docs, 674237370 bytes
total 155.531 sec, 4335045 bytes/sec, 10675.15 docs/sec
total 16 reads, 15.074 sec, 61858.4 kb/call avg, 942.1 msec/call avg
total 1950 writes, 1.040 sec, 998.5 kb/call avg, 0.5 msec/call avg
rotating indices: successfully sent SIGHUP to searchd (pid=25377).

Но я не могу подключиться к базе данных, ни из командной строки, ни из php (я использую yii2, для подключения к sphinx используйте yii2-sphinx).

Когда я пытаюсь подключиться к mysql из командной строки, возникает ошибка:

shapoval@servername$ mysql -h0 -P3313 -u username -p
Enter password:
ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0 "Internal error/check (Not system error)"

При попытке запустить запрос с сайта возникает несколько ошибок:

2015-12-22 10:03:08 [10.10.10.10][][-][error][yiidbException] exception 'yiibaseErrorException' with message 'Packets out of order. Expected 0 received 1. Packet size=0' in /var/www/sitename/vendor/yiisoft/yii2/db/Connection.php:558
Stack trace:
#0 /var/www/sitename/common/extensions/rollbar/RollbarErrorHandlerTrait.php(35): yiibaseErrorHandler->handleError(2, 'Packets out of ...', '/var/www/sitename...', 558)
#1 [internal function]: commonextensionsrollbarRollbarErrorHandler->handleError(2, 'Packets out of ...', '/var/www/sitename...', 558, Array)
#2 /var/www/sitename/vendor/yiisoft/yii2/db/Connection.php(558): PDO->__construct('mysql:host=127....', 'username', 'password', NULL)
#3 /var/www/sitename/vendor/yiisoft/yii2/db/Connection.php(508): yiidbConnection->createPdoInstance()
#4 /var/www/sitename/vendor/yiisoft/yii2-sphinx/Connection.php(112): yiidbConnection->open()
#5 /var/www/sitename/vendor/yiisoft/yii2-sphinx/Schema.php(255): yiisphinxConnection->createCommand('SHOW TABLES')
#6 /var/www/sitename/vendor/yiisoft/yii2-sphinx/Schema.php(239): yiisphinxSchema->findIndexes()
#7 /var/www/sitename/vendor/yiisoft/yii2-sphinx/Schema.php(226): yiisphinxSchema->initIndexesInfo()
#8 /var/www/sitename/vendor/yiisoft/yii2-sphinx/Schema.php(113): yiisphinxSchema->getIndexTypes()
#9 /var/www/sitename/vendor/yiisoft/yii2-sphinx/Schema.php(88): yiisphinxSchema->resolveIndexType(Object(yiisphinxIndexSchema))
#10 /var/www/sitename/vendor/yiisoft/yii2-sphinx/Schema.php(151): yiisphinxSchema->loadIndexSchema('sitename')
#11 /var/www/sitename/vendor/yiisoft/yii2-sphinx/Connection.php(78): yiisphinxSchema->getIndexSchema('sitename', false)
#12 /var/www/sitename/html/vendor/yiisoft/yii2-sphinx/QueryBuilder.php(494): yiisphinxConnection->getIndexSchema('sitename')
#13 /var/www/sitename/vendor/yiisoft/yii2-sphinx/QueryBuilder.php(81): yiisphinxQueryBuilder->buildWhere(Array, 'MATCH(:qp0)', Array)
#14 /var/www/sitename/vendor/yiisoft/yii2-sphinx/Query.php(171): yiisphinxQueryBuilder->build(Object(yiisphinxQuery))
#15 /var/www/sitename/vendor/yiisoft/yii2-sphinx/Query.php(184): yiisphinxQuery->createCommand(NULL)
#16 /var/www/sitename/common/actions/SphinxSearchAction.php(78): yiisphinxQuery->all()
#17 [internal function]: commonactionsSphinxSearchAction->run()
#18 /var/www/sitename/vendor/yiisoft/yii2/base/Action.php(91): call_user_func_array(Array, Array)
#19 /var/www/sitename/vendor/yiisoft/yii2/base/Controller.php(147): yiibaseAction->runWithParams(Array)
#20 /var/www/sitename/vendor/yiisoft/yii2/base/Module.php(460): yiibaseController->runAction('search', Array)
#21 /var/www/sitename/vendor/yiisoft/yii2/web/Application.php(82): yiibaseModule->runAction('site/search', Array)
#22 /var/www/sitename/vendor/yiisoft/yii2/base/Application.php(369): yiiwebApplication->handleRequest(Object(yiiwebRequest))
#23 /var/www/sitename/frontend/web/index.php(18): yiibaseApplication->run()
#24 {main}

Next exception 'PDOException' with message 'SQLSTATE[HY000] [2006] MySQL server has gone away' in /var/www/sitename/vendor/yiisoft/yii2/db/Connection.php:558
Stack trace:
#0 /var/www/sitename/vendor/yiisoft/yii2/db/Connection.php(0): PDO->__construct()
#1 /var/www/sitename/vendor/yiisoft/yii2/db/Connection.php(508): yiidbConnection->createPdoInstance()
#2 /var/www/sitename/yiisoft/yii2-sphinx/Connection.php(112): yiidbConnection->open()
#3 /var/www/sitename/yiisoft/yii2-sphinx/Schema.php(255): yiisphinxConnection->createCommand('SHOW TABLES')
#4 /var/www/sitename/vendor/yiisoft/yii2-sphinx/Schema.php(239): yiisphinxSchema->findIndexes()
#5 /var/www/sitename/vendor/yiisoft/yii2-sphinx/Schema.php(226): yiisphinxSchema->initIndexesInfo()
#6 /var/www/sitename/vendor/yiisoft/yii2-sphinx/Schema.php(113): yiisphinxSchema->getIndexTypes()
#7 /var/www/sitename/vendor/yiisoft/yii2-sphinx/Schema.php(88): yiisphinxSchema->resolveIndexType(Object(yiisphinxIndexSchema))
#8 /var/www/sitename/vendor/yiisoft/yii2-sphinx/Schema.php(151): yiisphinxSchema->loadIndexSchema('sitename')
#9 /var/www/sitename/vendor/yiisoft/yii2-sphinx/Connection.php(78): yiisphinxSchema->getIndexSchema('sitename', false)
#10 /var/www/sitename/vendor/yiisoft/yii2-sphinx/QueryBuilder.php(494): yiisphinxConnection->getIndexSchema('sitename')
#11 /var/www/sitename/vendor/yiisoft/yii2-sphinx/QueryBuilder.php(81): yiisphinxQueryBuilder->buildWhere(Array, 'MATCH(:qp0)', Array)
#12 /var/www/sitename/vendor/yiisoft/yii2-sphinx/Query.php(171): yiisphinxQueryBuilder->build(Object(yiisphinxQuery))
#13 /var/www/sitename/vendor/yiisoft/yii2-sphinx/Query.php(184): yiisphinxQuery->createCommand(NULL)
#14 /var/www/sitename/common/actions/SphinxSearchAction.php(78): yiisphinxQuery->all()
#15 [internal function]: commonactionsSphinxSearchAction->run()
#16 /var/www/sitename/vendor/yiisoft/yii2/base/Action.php(91): call_user_func_array(Array, Array)
#17 /var/www/sitename/vendor/yiisoft/yii2/base/Controller.php(147): yiibaseAction->runWithParams(Array)
#18 /var/www/sitename/vendor/yiisoft/yii2/base/Module.php(460): yiibaseController->runAction('search', Array)
#19 /var/www/sitename/vendor/yiisoft/yii2/web/Application.php(82): yiibaseModule->runAction('site/search', Array)
#20 /var/www/sitename/vendor/yiisoft/yii2/base/Application.php(369): yiiwebApplication->handleRequest(Object(yiiwebRequest))
#21 /var/www/sitename/frontend/web/index.php(18): yiibaseApplication->run()
#22 {main}

Next exception 'yiidbException' with message 'SQLSTATE[HY000] [2006] MySQL server has gone away' in /var/www/sitename/vendor/yiisoft/yii2/db/Connection.php:513
Stack trace:
#0 /var/www/sitename/vendor/yiisoft/yii2-sphinx/Connection.php(112): yiidbConnection->open()
#1 /var/www/sitename/vendor/yiisoft/yii2-sphinx/Schema.php(255): yiisphinxConnection->createCommand('SHOW TABLES')
#2 /var/www/sitename/vendor/yiisoft/yii2-sphinx/Schema.php(239): yiisphinxSchema->findIndexes()
#3 /var/www/sitename/vendor/yiisoft/yii2-sphinx/Schema.php(226): yiisphinxSchema->initIndexesInfo()
#4 /var/www/sitename/vendor/yiisoft/yii2-sphinx/Schema.php(113): yiisphinxSchema->getIndexTypes()
#5 /var/www/sitename/vendor/yiisoft/yii2-sphinx/Schema.php(88): yiisphinxSchema->resolveIndexType(Object(yiisphinxIndexSchema))
#6 /var/www/sitename/vendor/yiisoft/yii2-sphinx/Schema.php(151): yiisphinxSchema->loadIndexSchema('sitename')
#7 /var/www/sitename/vendor/yiisoft/yii2-sphinx/Connection.php(78): yiisphinxSchema->getIndexSchema('sitename', false)
#8 /var/www/sitename/vendor/yiisoft/yii2-sphinx/QueryBuilder.php(494): yiisphinxConnection->getIndexSchema('sitename')
#9 /var/www/sitename/vendor/yiisoft/yii2-sphinx/QueryBuilder.php(81): yiisphinxQueryBuilder->buildWhere(Array, 'MATCH(:qp0)', Array)
#10 /var/www/sitename/vendor/yiisoft/yii2-sphinx/Query.php(171): yiisphinxQueryBuilder->build(Object(yiisphinxQuery))
#11 /var/www/sitename/vendor/yiisoft/yii2-sphinx/Query.php(184): yiisphinxQuery->createCommand(NULL)
#12 /var/www/sitename/common/actions/SphinxSearchAction.php(78): yiisphinxQuery->all()
#13 [internal function]: commonactionsSphinxSearchAction->run()
#14 /var/www/sitename/vendor/yiisoft/yii2/base/Action.php(91): call_user_func_array(Array, Array)
#15 /var/www/sitename/vendor/yiisoft/yii2/base/Controller.php(147): yiibaseAction->runWithParams(Array)
#16 /var/www/sitename/vendor/yiisoft/yii2/base/Module.php(460): yiibaseController->runAction('search', Array)
#17 /var/www/sitename/vendor/yiisoft/yii2/web/Application.php(82): yiibaseModule->runAction('site/search', Array)
#18 /var/www/sitename/vendor/yiisoft/yii2/base/Application.php(369): yiiwebApplication->handleRequest(Object(yiiwebRequest))
#19 /var/www/sitename/frontend/web/index.php(18): yiibaseApplication->run()
#20 {main}

Настройки подключения Sphinx в yii2

<?php
return [
'dsn' => 'mysql:host=127.0.0.1;port=3313;',
'username' => 'username',
'password' => 'password',
];

Код в yii2 для выполнения запроса

$query = (new Query())
->from('sourceName')
->match('*'.Yii::$app->request->get('q').'*');
$rows = $query->all();

Дополнительная информация о сервере:

  • Ubuntu 15.04
  • Linux 3.19.0-21-generic x86_64
  • Sphinx 2.2.9-id64-release (rel22-r5006)
  • MySQL 10.0.20-MariaDB-1 ~ vivid-log

В чем может быть проблема?

Буду рад любой помощи. Спасибо!

2

2 / 2 / 0

Регистрация: 04.05.2017

Сообщений: 74

1

Проблема после переноса сайта на новый хостинг

08.06.2020, 11:23. Показов 12477. Ответов 17


Добрый день!
После переноса сайта на новый хостинг возникла следующая проблема, при открытии сайта выходит лог ошибок:

Код

[Error] 
> Call to a member function IsAuthorized() on string (0)
> /home/site.ru/docs/bitrix/modules/sale/general/basket.php:3776
> #0: CAllSaleUser::GetID(boolean)
>  /home/site.ru/docs/bitrix/modules/sale/lib/fuser.php:50
> #1: BitrixSaleFuser::getId()
>  /home/site.ru/docs/local/php_interface/init.php:47
> #2: resetDescription()
>  /home/site.ru/docs/local/php_interface/init.php:61
> #3: checkEmptyDescription()
>  /home/site.ru/docs/bitrix/modules/main/classes/general/module.php:475
> #4: ExecuteModuleEventEx(array)
>  /home/site.ru/docs/bitrix/modules/main/include.php:284
> #5: require_once(string)
>  /home/site.ru/docs/bitrix/modules/main/include/prolog_before.php:14
> #6: require_once(string)
>  /home/site.ru/docs/bitrix/modules/main/include/prolog.php:10
> #7: require_once(string)
>  /home/site.ru/docs/bitrix/header.php:1
> #8: require(string)
>  /home/site.ru/docs/index.php:2

Причем по техническому домену сайт открывается, а также при удалении cookie, но введя в поиск что либо получаем следующий лог:

Код

[BitrixMainDBConnectionException] 
Sphinx connect error: Ошибка подключения (No route to host). (400)
/home/site.ru/docs/bitrix/modules/search/tools/sphinx.php:74
#0: CSearchSphinx->connect(string, string)
	/home/site.ru/docs/bitrix/modules/search/classes/general/full_text.php:25
#1: CSearchFullText::getInstance()
	/home/site.ru/docs/bitrix/modules/search/classes/general/search.php:116
#2: CAllSearch->Search(array, array, array)
	/home/site.ru/docs/bitrix/components/bitrix/search.page/component.php:317
#3: include(string)
	/home/site.ru/docs/bitrix/modules/main/classes/general/component.php:594
#4: CBitrixComponent->__includeComponent()
	/home/site.ru/docs/bitrix/modules/main/classes/general/component.php:653
#5: CBitrixComponent->includeComponent(string, array, object)
	/home/site.ru/docs/bitrix/modules/main/classes/general/main.php:1037
#6: CAllMain->IncludeComponent(string, string, array, object)
	/home/site.ru/docs/local/templates/Rina/components/bitrix/catalog.search/main/template.php:35
#7: include(string)
	/home/site.ru/docs/bitrix/modules/main/classes/general/component_template.php:720
#8: CBitrixComponentTemplate->__IncludePHPTemplate(array, array, string)
	/home/site.ru/docs/bitrix/modules/main/classes/general/component_template.php:815
#9: CBitrixComponentTemplate->IncludeTemplate(array)
	/home/site.ru/docs/bitrix/modules/main/classes/general/component.php:735
#10: CBitrixComponent->showComponentTemplate()
	/home/site.ru/docs/bitrix/modules/main/classes/general/component.php:683
#11: CBitrixComponent->includeComponentTemplate()
	/home/site.ru/docs/bitrix/components/bitrix/catalog.search/component.php:29
#12: include(string)
	/home/site.ru/docs/bitrix/modules/main/classes/general/component.php:594
#13: CBitrixComponent->__includeComponent()
	/home/site.ru/docs/bitrix/modules/main/classes/general/component.php:653
#14: CBitrixComponent->includeComponent(string, array, object)
	/home/site.ru/docs/bitrix/modules/main/classes/general/main.php:1037
#15: CAllMain->IncludeComponent(string, string, array, object)
	/home/site.ru/docs/local/templates/Rina/components/bitrix/catalog/main/search.php:104
#16: include(string)
	/home/site.ru/docs/bitrix/modules/main/classes/general/component_template.php:720
#17: CBitrixComponentTemplate->__IncludePHPTemplate(array, array, string)
	/home/site.ru/docs/bitrix/modules/main/classes/general/component_template.php:815
#18: CBitrixComponentTemplate->IncludeTemplate(array)
	/home/site.ru/docs/bitrix/modules/main/classes/general/component.php:735
#19: CBitrixComponent->showComponentTemplate()
	/home/site.ru/docs/bitrix/modules/main/classes/general/component.php:683
#20: CBitrixComponent->includeComponentTemplate(string)
	/home/site.ru/docs/bitrix/components/bitrix/catalog/component.php:171
#21: include(string)
	/home/site.ru/docs/bitrix/modules/main/classes/general/component.php:594
#22: CBitrixComponent->__includeComponent()
	/home/site.ru/docs/bitrix/modules/main/classes/general/component.php:653
#23: CBitrixComponent->includeComponent(string, array, boolean)
	/home/site.ru/docs/bitrix/modules/main/classes/general/main.php:1037
#24: CAllMain->IncludeComponent(string, string, array, boolean)
	/home/site.ru/docs/catalog/index.php:626

Версия PHP 7.2 Хостер nic.ru

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь

0

1728 / 1074 / 219

Регистрация: 16.03.2008

Сообщений: 5,065

Записей в блоге: 2

08.06.2020, 12:29

2

По первой. У вас какая то проблема с глобальными переменными. (Особенно если учесть. что на техническом домене открывается)…. Может где то какие то права на сервере «перекошены».
По второй проблеме смотрите установлен ли и настроен сервер сфинкс.

Разворачивали стандартным мастером Битрикса?

1

2 / 2 / 0

Регистрация: 04.05.2017

Сообщений: 74

08.06.2020, 12:32

 [ТС]

3

Да, через файл restore.php

0

1728 / 1074 / 219

Регистрация: 16.03.2008

Сообщений: 5,065

Записей в блоге: 2

08.06.2020, 12:42

4

Лучший ответ Сообщение было отмечено Кверт как решение

Решение

Ну второй вопрос. тут однозначно. Просто настраивайте сфинкс (ну или откажитесь от его использования в админке)

По первому. тут или серверный косяк, или (что вероятнее) у вас какойто код выполняется до инициализации переменной $USER (что является ошибкой). Возможно на техническом открывается — потому, что, например, там какая то проверка на домен еще есть….
Я бы начал с рассмотрения функций
/home/site.ru/docs/local/php_interface/init.php:47 > #2: resetDescription()
/home/site.ru/docs/local/php_interface/init.php:61 > #3: checkEmptyDescription()

Явно там косяк, который надо исправить. (смотреть на $USER->GetId() — сейчас он у вас выполняется слишком рано)

1

2 / 2 / 0

Регистрация: 04.05.2017

Сообщений: 74

08.06.2020, 12:50

 [ТС]

5

Хорошо, спасибо, по второму вопросу понял, а может быть проблема в хостинге по первому? потому что до переноса на новый хостинг все работало без проблем и изменений никаких не вносилось? Я так полагаю, что если бы была подобная ошибка, то и на старом хостинге это проявлялось?

0

1728 / 1074 / 219

Регистрация: 16.03.2008

Сообщений: 5,065

Записей в блоге: 2

08.06.2020, 12:58

6

Маловероятно. Просто у вас по каким то причинам эта ошибка не возникала. Баг он ведь такой — может выскочить только при определенных условиях. Тут надо смотреть на код.

Скорее всего у вас checkEmptyDescription выполняется на некоем событии, которое вызывается до инициализации $USER. Т.е. при разработке не учли порядок выполнения страницы. А почему там прокатывало, а тут нет — надо уже смотреть на коды этих двух функций. Какие они условия проверяют. Исходя из их названий в качестве гаданий на кофейной гуще: на старом месте не было необходимости генерировать некое описание. А тут, например, некий генерируемый файл с описанием или пропал или путь к нему сломался или с правами беда…… Например у вас это название зависит от домена. Если домен из спсика — генерируется, не из спсика (технический), то просто остается пустым или дефолтным

0

2 / 2 / 0

Регистрация: 04.05.2017

Сообщений: 74

08.06.2020, 13:13

 [ТС]

7

Вот строчки с 47 по 61, может получится что то определить

Код

				$fUserId = BitrixSaleFuser::getId();

				$siteId = BitrixMainApplication::getInstance()->getContext()->getSite();

				$basket = BitrixSaleBasket::loadItemsForFUser($fUserId, $siteId);

				$discounts = BasketRefreshExtraDiscount::getDiscount($basket);

				BasketRefreshExtraCalculator::calculateBasket($basket);

				BasketRefreshExtraDiscount::applyDiscount($basket, $discounts);
			}
		}

		resetDescription();

0

voral

1728 / 1074 / 219

Регистрация: 16.03.2008

Сообщений: 5,065

Записей в блоге: 2

08.06.2020, 13:17

8

Нет не достаточно.

Тут даже важнее понять где эта функция вызывается. Посмотрите поиском по файл init.php checkEmptyDescription может где то встречается, или в списке агентов в админке

Добавлено через 1 минуту
типа такой конструкция может быть в init.php

PHP
1
addEventHandler("main", 'OnBlaBla', 'checkEmptyDescription');

0

2 / 2 / 0

Регистрация: 04.05.2017

Сообщений: 74

08.06.2020, 13:20

 [ТС]

9

Код

	global $USER;
	if (($USER->IsAdmin() || ($all == true)) or $USER->GetID() == "18") {
		echo "<pre>";
		print_r($var);
		echo "</pre>";
	}
	if ($die) {
		die;
	}

Да, Вы правы, она вызывается первой, с 8 по 16 строки, то есть желательно переместить ее ниже?

0

1728 / 1074 / 219

Регистрация: 16.03.2008

Сообщений: 5,065

Записей в блоге: 2

08.06.2020, 13:25

10

Тут нет ее вызова

Добавлено через 48 секунд
Если вы про GetID — этот кусок кода внутри какой то функции?

0

2 / 2 / 0

Регистрация: 04.05.2017

Сообщений: 74

08.06.2020, 14:06

 [ТС]

11

Код

EventManager::getInstance()->addEventHandler('main', 'OnPageStart', 'checkEmptyDescription');

function checkEmptyDescription()
{

У меня возникло подозрение, что это опять же со сфинксом связано, так как идет поиск по cookie о товарах в корзине, я его отключил, поиск заработал стандартный, сейчас жду ответа от тех, кто не чистил куки и не мог войти на сайт, у меня после чистки cookie вход уже работал, пока не могу это проверить, а по функции нашло такой участок по поиску

Добавлено через 33 минуты
Да, после перехода на стандартный модуль поиска все заработало, Вам в любом случае большое спасибо за помощь

0

voral

1728 / 1074 / 219

Регистрация: 16.03.2008

Сообщений: 5,065

Записей в блоге: 2

02.07.2020, 18:58

12

Смотрите вы привели кусок кода с 47 по 61. Судя по двум закрывающим скобкам этот код выполняется при определенных условиях. В идеале их посмотреть. Среди прочего до этой строки, должно быть подключение модуля sale.

Т.е. примерно такой код

PHP
1
BitrixMainLoader::includeModule('sale')

Это может быть и как условие (или часть оного). т.е. типа

PHP
1
2
3
if (BitrixMainLoader::includeModule('sale')) {
///тут приведенный вами код
}

Если такой строки выше по коду нет — то достаточно большая вероятность, что в этом проблема.

Добавлено через 1 минуту
Да еще там вместо этой строки может быть старый вызов

PHP
1
CModule::IncludeModule('sale')

тоже «годиться»

0

2 / 2 / 0

Регистрация: 04.05.2017

Сообщений: 74

02.07.2020, 19:12

 [ТС]

13

Код

// Установит описание расчета в корзине, если оно пустое
EventManager::getInstance()->addEventHandler('main', 'OnPageStart', 'checkEmptyDescription');

function checkEmptyDescription()
{

	if (empty($_SESSION['BASKET_DESCRIPTION'])) {

		if (!function_exists('resetDescription')) {

			function resetDescription()
			{
				Loader::includeModule('sale');

				$fUserId = BitrixSaleFuser::getId();

				$siteId = BitrixMainApplication::getInstance()->getContext()->getSite();

				$basket = BitrixSaleBasket::loadItemsForFUser($fUserId, $siteId);

				$discounts = BasketRefreshExtraDiscount::getDiscount($basket);

				BasketRefreshExtraCalculator::calculateBasket($basket);

				BasketRefreshExtraDiscount::applyDiscount($basket, $discounts);
			}
		}

		resetDescription();

	}
}

Эта часть или что то еще потребуется?

Добавлено через 10 минут

Код

<?

namespace BasketRefreshExtra;

class Description
{
	public static function setDescription($description)
	{
		$_SESSION['BASKET_DESCRIPTION'] = $description;
	}
}

На всякий случай еще description.php выглядит так

0

voral

1728 / 1074 / 219

Регистрация: 16.03.2008

Сообщений: 5,065

Записей в блоге: 2

02.07.2020, 19:35

14

Лучший ответ Сообщение было отмечено Кверт как решение

Решение

Я бы сделал так (если не вдаваться в правильность самой логики). Изменил событие на OnBeforeProlog

PHP
1
EventManager::getInstance()->addEventHandler('main', 'OnBeforeProlog', 'checkEmptyDescription');

А вообще у вас есть класс BasketRefreshExtraDiscount в нем идет работа с этой переменной сессии, и в коде вы работаете с ней, уж лучше тогда все это оформить в рамках этого класса. (но это уже лирика)

0

2 / 2 / 0

Регистрация: 04.05.2017

Сообщений: 74

02.07.2020, 20:09

 [ТС]

15

Хорошо, спасибо, попробую, отпишусь тогда по результатам, как и говорил проблема локальная, я данную ошибку у себя вызвать не смог пока, но у многих пользователей она присутствует, как получу обратную связь, смогу ответить, помогло или нет

0

1728 / 1074 / 219

Регистрация: 16.03.2008

Сообщений: 5,065

Записей в блоге: 2

02.07.2020, 20:14

16

В режиме инкогнито потестируйте — у вас гарантировано должна быть «чистая» сессия. Так же возможно это на какой то конкретной странице или ситуации. Предположим на прочих страницах срабатывает некоторое событие раньше (точнее обработчик), которое «решает» эту проблему

Добавлено через 1 минуту
Так же, может быть вариант — у вас где то есть еще одна функция resetDescription — с иным кодом. Где то она раньше подключается, а где то в эту код влетает.

0

2 / 2 / 0

Регистрация: 04.05.2017

Сообщений: 74

02.07.2020, 20:23

 [ТС]

17

В режиме инкогнито пробовал, у пользователей по метрике тоже все открывается, данная проблема возникает у активных авторизованных пользователей, наверно связано с дисконтом или еще какими то функциями, надеюсь данное решение поможет, в любом случае отпишусь по результатам. В режиме инкогнито еще раз протестировал, тоже все работает.

0

2 / 2 / 0

Регистрация: 04.05.2017

Сообщений: 74

03.07.2020, 16:38

 [ТС]

18

Пользователи, у которых возникала данная проблема, смогли зайти. Пока только часть опросили, но вроде все работает и открывается. В любом случае данное решение помогло. Большое спасибо за помощь

0

Here’s one from my birthday. :)
Is a TS upgrade required to upgrade sphinx to 2.2.11? This is a legacy project that just needs to run for now. Not a lot of development going on right now.

[Mon Feb  5 17:10:05.961 2018] [ 4921] caught SIGHUP (seamless=1, in queue=1)
------- FATAL: CRASH DUMP -------
[Mon Feb  5 17:10:05.961 2018] [ 4921]

--- crashed SphinxAPI request dump ---

--- request dump end ---
Sphinx 2.2.6-id64-release (r4843)
Handling signal 11
-------------- backtrace begins here ---------------
Program compiled with x86_64-linux-gnu-gcc 4.8
Configured with flags:  '--host=x86_64-linux-gnu' '--build=x86_64-linux-gnu' '--prefix=/usr' '--mandir=${prefix}/share/man' '--infodir=${prefix}/share/info' '--localstatedir=/var/lib/sphinxsearch' '--sysconfdir=/etc/sphinxsearch' '--with-mysql' '--with-pgsql' '--enable-id64' '--with-libstemmer' '--with-re2' '--with-unixodbc' '--with-syslog' 'CFLAGS=-Wall -g -O3' 'LDFLAGS=-Wl,-z,defs  -pthread' 'build_alias=x86_64-linux-gnu' 'host_alias=x86_64-linux-gnu'
Host OS is Linux trusty64 3.13.0-35-generic #62-Ubuntu SMP Fri Aug 15 01:58:42 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
Stack bottom = 0x7fffc04eea8f, thread stack size = 0x100000
Trying manual backtrace:
Something wrong with thread stack, manual backtrace may be incorrect (fp=0xb)
Wrong stack limit or frame pointer, manual backtrace failed (fp=0xb, stack=0x7fffc04f0000, stacksize=0x100000)
Trying system backtrace:
begin of system symbols:
searchd[0x58bba0]
searchd[0x40eddd]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x10340)[0x7f8005987340]
searchd[0x438950]
searchd[0x43c1e9]
searchd[0x45afbc]
searchd[0x45c6c6]
searchd[0x408977]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5)[0x7f80040cdec5]
searchd[0x408e15]
-------------- backtrace ends here ---------------
Please, create a bug report in our bug tracker (http://sphinxsearch.com/bugs) and attach there:
a) searchd log, b) searchd binary, c) searchd symbols.
Look into the chapter 'Reporting bugs' in the documentation
(/usr/share/doc/sphinx/sphinx.txt or http://sphinxsearch.com/docs/current.html#reporting-bugs)
--- BT to source lines (depth 10): ---
--- BT to source lines finished ---
--- 3 active threads ---
thd 0, proto sphinxql, state net_idle, command update
thd 1, proto sphinxql, state net_idle, command update
thd 2, proto sphinxql, state net_idle, command update
------- CRASH DUMP END -------

успешно индексирует, создаёт файлы с индексами, запускает службу
5abb3689417bf151866490.png
но когда делаем запрос, получаем [Err] 1064 — no enabled local indexes to search и в логи падает

[Wed Mar 28 09:26:07.739 2018] [4348] listening on all interfaces, port=9312
[Wed Mar 28 09:26:07.743 2018] [4348] listening on all interfaces, port=9306
[Wed Mar 28 09:26:07.765 2018] [4348] WARNING: No extra index definitions found in data folder
[Wed Mar 28 09:26:07.769 2018] [4348] WARNING: index 'adsSphinx': lock: failed to lock c:/sphinx3/data/project/ads.spl: Bad file descriptor; INDEX UNUSABLE

кто сталкивался с таким? во второй версии всё идентично и всё ок

конфиг

source dbconnection
{
	type		= mysql
	sql_host	= localhost
	sql_user	= root
	sql_pass	= 
	sql_db		= project
	sql_port	= 3306	#optional, default is 3306
	sql_query_pre 	= SET NAMES utf8
    sql_query_pre 	= SET CHARACTER SET utf8
}

source ads : dbconnection
{
    sql_query = SELECT 
                    A.id as id, 
                    A.user_id, 
                    A.name, 
                    A.created_at, 
                    A.updated_at, 
                FROM ads as A 
                WHERE A.is_deleted != 1 

    sql_attr_uint     = id
    sql_attr_string   = name
}

index adsSphinx
{
	source			= ads
	path			= c:/sphinx3/data/project/ads
	morphology      = stem_enru
	charset_table 	= 0..9, A..Z->a..z, _, -, a..z, 
    	    U+410..U+42F->U+430..U+44F, U+430..U+44F, U+401->U+0435, U+451->U+0435
    blend_chars     = +, U+23, &
	min_word_len    = 1
	min_infix_len 	= 2
	index_exact_words = 1

}

indexer
{
	mem_limit		= 128M
}

searchd
{
	listen			= 9312
	listen			= 9306:mysql41
	log			= c:/sphinx3/log/searchd.log
	query_log		= c:/sphinx3/log/query.log
	binlog_path		= c:/sphinx3/data
	read_timeout		= 5
	max_children		= 30
	pid_file		= c:/sphinx3/log/searchd.pid
	seamless_rotate		= 1
	preopen_indexes		= 1
	unlink_old		= 1
	workers			= threads # for RT to work
}

Im using Sphinx 0.9.9-release (r2117) and sphinxapi.php (http://code.google.com/p/sphinxsearch/source/browse/tags/REL_0_9_9_RC2/api/sphinxapi.php).

When I testing searching in command shell: «search -i INDEX_NAME test» everything is
perfect, but when I connect to Sphinx by sphinxapi.php this error occur.

sphinx.conf is configured properly, index created…

Any ideas what can be wrong?

asked Feb 24, 2010 at 21:49

Adiasz's user avatar

AdiaszAdiasz

1,6141 gold badge12 silver badges21 bronze badges

3

Load 5 more related questions

Show fewer related questions

Установил на сервер Sphinx, при попытке поменять в настройках модуля поиска Bitrix на Sphinx получаю ошибку: «Ошибка подключения к серверу Sphinx:
Указанный индекс не найден.». Через ssh пробую запустить searchd — получаю ошибку

Цитата
unknown key name ‘lemmatizer_base’

Ругается на строку в конфиге lemmatizer_base = /etc/sphinxsearch/dicts/
В чем беда? Каталог существует

У меня проблема с запуском и работой с sphinx. Мне удалось запустить indexer --all, но теперь я хочу выполнить поиск, и у меня постоянно появляется эта ошибка при запуске searchd --status.

WARNING: failed to connect to 127.0.0.1:9312: Connection refused

WARNING: failed to connect to 0.0.0.0:9306: Connection refused

FATAL: failed to connect to daemon: please specify listen with sphinx protocol in your config file

Sphinx query () возвращает false, и я предполагаю, что это связано с проблемой подключения.

Вот часть моего файла .conf.

searchd
{
    listen                  = 127.0.0.1:9312
    listen          = 9306:sphinx
    listen          = 2471:mysql41
    log         = /var/log/sphinx/searchd.log
    query_log       = /var/log/sphinx/query.log
    max_matches     = 1000
    read_timeout        = 5
    max_children        = 30
    pid_file        = /var/run/sphinx/searchd.pid
    seamless_rotate     = 1
    preopen_indexes     = 1
    unlink_old      = 1
    workers         = threads # for RT to work
    binlog_path     = /var/lib/sphinx
 }

Что мне не хватает в настройке портов прослушивания?

1 ответ

Лучший ответ

Как отмечено в комментариях, означает, что демон searchd не работает на самом деле.

Можно попробовать использовать searchd для запуска демона (и более позднего searchd --stop), который может показывать ошибки, которые вы могли не увидеть при запуске service / init.d.

(потому что, если сам файл журнала не работает, ошибкам некуда идти :)


2

barryhunter
17 Сен 2014 в 22:19

  • Ошибка подключения к серверу sphinx ошибка подключения connection refused
  • Ошибка подключения к серверу smtp 111
  • Ошибка подключения к серверу smtp 110
  • Ошибка подключения к серверу rainbow six siege 4 0xfff0be2b
  • Ошибка подключения к серверу nod32 что делать