donglianjiang9321
donglianjiang9321
采纳率0%
2013-01-26 10:46

狮身人面像重新启动搜索恶魔问题以重新索引Delta索引

已采纳

I’m working on my application search engine. This search engine is using sphinx for fulltext searching.

I created a cron job which is responsible for updating indexes. Currently it is set to execute once in a day.

Here what im doing in this cron.

   indexer --all --rotate > sphinx.log

Sometimes the whole search module goes down and it shows this error on client application.

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]

And on sphinx.log I found this error

FATAL: failed to lock /usr/local/sphinxsearch/delta_users/delta_users.spl: Resource temporarily unavailable, will not index. Try --rotate option.

It seems like 9312 is refused to connect, probably this is because the resource files are used by some other process. This is random behavior yet.

The environment is deployed on Linux (ubuntu) and application is created on cakephp. I’m trying to identify what cause it stops from restarting sphinx service again. I don’t know either this is sphinx configuration issue or some I/O or mysql problem. I think delta indexes causing some problem only.

Thanks in advance.

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • dongqi3533 dongqi3533 8年前

    The problem is actually when it rotates all indexes i.e main and delta indexes altogether it locks the resource file of delta indexes. I moved the rotation of delta indexes with other cron job which is responsible for merging delta indexing.

    indexer   delta_users delta_users_type
    indexer --merge users  delta_users 
    indexer --merge users_type delta_users_type
    

    And rotate only main indexes separately on different cron

    indexer --rotate -- users  users_type
    

    instead of

    indexer --rotate -- all 
    

    Hence the separate rotation of Delta and Main index is the resolution.

    Thanks

    点赞 评论 复制链接分享
  • doupian9798 doupian9798 8年前

    Check which users run searchd and indexer processes. Also see what permissions you have on the index files. You are having a permission issue.

    点赞 评论 复制链接分享