Php Sphinx重新启动搜索demon以重新索引增量索引

Php Sphinx重新启动搜索demon以重新索引增量索引,php,mysql,cakephp,full-text-search,sphinx,Php,Mysql,Cakephp,Full Text Search,Sphinx,我正在开发我的应用程序搜索引擎。此搜索引擎正在使用sphinx进行全文搜索 我创建了一个cron作业,负责更新索引。目前设置为每天执行一次 这是我在这个cron里做的事情 indexer --all --rotate > sphinx.log 有时整个搜索模块都会关闭,并在客户端应用程序上显示此错误 Notice (1024): Search query failed: connection to 127.0.0.1:9312 failed (errno=111, msg=Conn

我正在开发我的应用程序搜索引擎。此搜索引擎正在使用sphinx进行全文搜索

我创建了一个cron作业,负责更新索引。目前设置为每天执行一次

这是我在这个cron里做的事情

   indexer --all --rotate > sphinx.log
有时整个搜索模块都会关闭,并在客户端应用程序上显示此错误

Notice (1024): Search query failed: connection to 127.0.0.1:9312 failed (errno=111, msg=Connection refused) [APP/models/behaviors/sphinx.php, line 134]
在sphinx.log上我发现了这个错误

FATAL: failed to lock /usr/local/sphinxsearch/delta_users/delta_users.spl: Resource temporarily unavailable, will not index. Try --rotate option.
似乎9312被拒绝连接,可能是因为资源文件被其他进程使用。这是随机行为

该环境部署在Linux(ubuntu)上,应用程序在cakephp上创建。 我正在试图找出它停止重新启动sphinx服务的原因。我不知道这是sphinx配置问题还是一些I/O或mysql问题。我认为delta索引只会导致一些问题


提前感谢。

检查哪些用户运行searchd和indexer进程。还可以查看您对索引文件拥有哪些权限。您有权限问题

问题实际上是,当它旋转所有索引(即主索引和增量索引)时,它会锁定增量索引的资源文件。我移动了增量索引与其他cron作业的轮换,后者负责合并增量索引

indexer   delta_users delta_users_type
indexer --merge users  delta_users 
indexer --merge users_type delta_users_type
并且只在不同的cron上分别旋转主要索引

indexer --rotate -- users  users_type
而不是

indexer --rotate -- all 
因此,Delta和主索引的单独旋转是分辨率


谢谢

searchd和indexer进程的用户是相同的,我已经授予了所有对文件进行索引的读写权限。我告诉过你这是随机行为