【问题标题】:sunspot_rails does not read sunspot.yml for its configsunspot_rails 不读取 sunspot.yml 的配置
【发布时间】:2012-02-07 10:02:11
【问题描述】:

我正在尝试将 sunspot 与 mongoid 一起使用,但 sunspot 未连接到 Solr。在尝试连接到 Solr 时,Rails 报告了以下错误。

Errno::ECONNREFUSED (Connection refused - connect(2))

我使用bundle exec rake sunspot:solr:start 运行 Solr,并且我已确认 Solr 正在 config/sunspot.yml 中定义的开发端口 (8982) 上运行

当我在 Rails 控制台中运行 Sunspot.config 时,我看到:

   @properties={:url=>"http://127.0.0.1:8983/solr"}

然后我将开发/生产端口更改为 8984/8985,Solr 从新的开发端口 (8984) 启动,但 Rails 控制台中的 Sunspot.config 仍然返回 http://127.0.0.1:8983/solr(既不是 8984 也不是 8985,这意味着它没有完全阅读 sunspot.yml)

我是否遗漏了 Rails 中 Sunspot 的一些初始化步骤?

我正在使用以下版本:

  • 红宝石 1.9.3
  • 导轨 (3.2.1)
  • 太阳黑子 (1.3.0)
  • sunspot_rails (1.3.0)
  • sunspot_mongoid (0.4.1)

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 solr sunspot sunspot-rails


    【解决方案1】:

    回答我自己的问题。实际上我的问题原来是 sunspot_mongoid,它在作为 gem 安装时不支持 rails,我必须将它作为 rails 插件添加到 thr rails 项目中,然后正确加载 config/sunspot.yml

    【讨论】:

    • 如何将此 gem 添加为插件?
    【解决方案2】:

    您是否退出控制台,重新启动并检查?

    【讨论】:

      【解决方案3】:

      我在尝试从控制台使用 sunspot_index_queue 时遇到了类似的问题,结果发现 sunspot 没有从 sunspot_rails 获得所需的配置(从 sunspot.yml 中获得)对您的 environment.rb 文件进行了一些细微的修改应该做的伎俩。这就是我必须做的事情(如果有人从谷歌找到这个页面,请发布它):

      <code>
      SunspotConfig = Sunspot::Rails::Configuration.new
      Sunspot.session = Sunspot::IndexQueue::SessionProxy.new(
        Sunspot::IndexQueue.new(
          :session => Sunspot::Session.new{|config| config.solr.url = "http://#{SunspotConfig.hostname}:#{SunspotConfig.port}/solr"}
        )
      )
      </code>
      

      要在没有队列的情况下使用,本地线程代理应该会自动从您的 sunspot.yml 中恢复,因此您无需担心。如果您对 sunspot.yml 文件中的任何内容感兴趣,请尝试使用 Sunspot::ConfigurationSunspot::Rails::Configuration。 (记得实例化!)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-01-17
        • 2012-03-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多