【问题标题】:ThnkingSphinx (sphinxd) on remote database server with delta indexes?ThnkingSphinx(sphinxd)在具有增量索引的远程数据库服务器上?
【发布时间】:2012-01-15 09:17:56
【问题描述】:

我正在设置一个简单的多层 Rails 3.1 设置——一台或多台服务器上的 Web 应用程序、postgresql 数据库和远程服务器上的 Sphinx 搜索索引。

在单服务器设置中,我们使用 ThinkingSphinx 和增量索引(使用延迟作业),然后是每晚的 cron 来更新主索引。效果很好。

所以:用户创建可索引的内容; app 告诉delayed_job 安排更新; delta-indexer 向 delta-index 添加新内容;搜索查看两者以正确解析搜索查询;夜间作业重新创建单个主索引。

ThinkingSphinx 的文档说 here near the bottom

最好的方法是让 Sphinx、数据库和延迟的作业处理任务都在一台机器上运行。

但我不清楚如何将延迟作业进程所需的信息发送到要运行的单个服务器。我已经阅读了一些关于拥有共享文件系统的内容(糟糕——真的吗?)。我还没有看代码,但也许有一个简单的方法?

这是希望!

【问题讨论】:

    标签: ruby-on-rails-3 search sphinx delayed-job thinking-sphinx


    【解决方案1】:

    延迟的作业工作者(在您的 DB/Sphinx 服务器上运行)在 Rails 应用程序的上下文中引用数据库 - 因此您也需要 DB/Sphinx 服务器上的应用程序,但只是为了运行 DJ工人。

    从您的应用服务器的角度来看,TS 只会像往常一样将作业记录添加到数据库中。

    您还需要设置以下设置 - 此设置位于 config/application.rb 的末尾:

    ThinkingSphinx.remote_sphinx = Rails.env.production?
    

    并将 Sphinx 版本添加到您的 config/sphinx.yml:

    production:
      version: 2.0.1-beta
    

    【讨论】:

    • 谢谢@pat。因为在创建新的可索引内容(例如发送电子邮件)时,我们正在为其他东西运行延迟作业(例如发送电子邮件),所以我认为这是我们发生延迟增量索引的地方。但当然不是——bundle exec rake ts:dd 是完成增量索引的地方。延迟这个,延迟那个。我很困惑 :-) 谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-27
    • 1970-01-01
    相关资源
    最近更新 更多