2009-10-26 120 views
2

下面是我决定的:思考狮身人面像增量索引生产失败

  1. 三角洲索引工作在发展正常,当我推到生产服务器
  2. 三角洲索引不工作,也没有任何动作记录在searchd.log
  3. 我跑的Phusion客运,并且,在the basic troubleshooting guide建议,已经证实:
    1. www数据具有运行索引rake任务(从命令李然他们权限NE手动)
    2. 路径索引和searchd的是正确的(在/ usr/local/bin目录)
    3. 有在production.log没有错误

地球上还有什么比我可能会丢失?我运行的是Ruby Enterprise 1.8.6,Rails 2.3.4,Sphinx 0.9.8.1和Thinking Sphinx 1.2.11。

谢谢!

回答

1

昨晚当我睡着的时候打了我。毫不奇怪,这是一个涉及糟糕配置的愚蠢问题,尽管我很惊讶它产生了它所做的结果。我想我对思考狮身人面像内部的东西了解不多。

最近我迁移了服务器。 sphinx.yml是这样的:

production: 
    bin_path: '/usr/local/bin' 
    host: mysql.mysite.com 

在新的服务器,MySQL只是一个本地服务,但是我忘了删除了这一行。有趣的是,手动耙重新索引仍然工作得很好。我很好奇斯芬克斯在尝试重新加载增量时没有抛出错误,因为mysql.mysite.com不再存在,尽管这显然是问题的根源。

感谢您的全力帮助,并抱歉提出这样一个愚蠢的问题。

0

Apache/Nginx的错误日志中是否有任何线索?

+0

注意到我的一个助手,一个弃用警告,但没有什么似乎以指示索引失败。 – Matchu 2009-10-26 02:45:03

+0

如何通过生产服务器上的脚本/控制台编辑记录?那样有用吗? – pat 2009-10-26 05:15:42

0

下面是我要采取的下一个故障排除步骤。打开您正在使用的增量索引策略的文件(推测可能为lib/thinking_sphinx/deltas/default_delta.rb)。找到实际生成索引命令的行。在矿(V1.1.6),这是第20行:

command = `#{config.bin_path}indexer --config #{config.config_file} #{rotate} #{delta_index_name model}` 
RAILS_DEFAULT_LOGGER.info(command) 
output = `#{command}` 
RAILS_DEFAULT_LOGGER.info(output) 

部署到生产和尾:

output = `#{config.bin_path}indexer --config #{config.config_file} #{rotate} #{delta_index_name model}` 

,如此您就可以登录命令本身,也许记录输出以及更改日志,同时修改增量索引模型。希望这会真正向你展示问题。当然,也许问题出在代码中的其他地方,你甚至不会得到这一点,但这是我开始的地方。

0

我遇到了这个问题,发现上面提到的“bin_path”解决方案。当它看起来不起作用时,我花了一段时间才意识到,当我在“停滞”环境中进行测试时,我粘贴了“生产”示例代码。问题解决了!

这是在确保配置,索引和启动狮身人面像的所有rake任务都与您的乘客实例一样以同一用户身份运行之后。如果您以root身份登录到服务器以运行这些任务,则它们将在控制台中工作,但不是通过乘客。

0

我有同样的问题。在命令行上运行,而不是在应用程序中运行。

原来,我们还有一个用于索引的slave数据库,但slave没有更新。

0

如上所述,在两台机器上面对同样的问题。第一个我们遇到了mysql在apache2日志中显示的问题。似乎只影响本地OSX机器..

第二次当我们部署到Ubuntu服务器,我们有同样的问题。 Rails C的制作很好,没有错误,Bla bla bla。

结束成为权限问题。由于没有问题,所以无法弄清楚这一点,尽管我想我是以root身份进行的。

使用Capistrano的和乘客,我们这样做:

  1. 创建一个乘客的用户并添加到www数据组
  2. 更改用户deploy.rb是乘客
  3. 手动改变了所有的/目前档案归
  4. 以乘客身份登录。
  5. 冉耙TS:重建RAILS_ENV =“生产”

工作一种享受我们...

好运