2

モンゴイドで黒点を使用しようとしていますが、黒点がSolrに接続していません。Solrに接続しようとしたときにRailsによって報告された次のエラー。

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

私はbundle exec rake sunspot:solr:startSolrを実行するために使用し、config / sunspot.ymlで定義されているようにSolrが開発ポート(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)
4

3 に答える 3

2

私自身の質問に答えます。実際、私の問題はsunspot_mongoidであることが判明しました。これは、gemとしてインストールするとレールに対応していないため、レールプラグインとしてレールプロジェクトに追加する必要があり、config/sunspot.ymlを正しくロードします

于 2012-02-10T21:37:15.423 に答える
0

コンソールからsunspot_index_queueを使用しようとしたときに同様の問題が発生し、sunspotがsunspot_railsから必要な構成を取得していないことが判明しました(sunspot.ymlから取得します)environments.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::Configurationまたは代わりに試してください。Sunspot::Rails::Configuration(インスタンス化することを忘れないでください!)

于 2012-02-09T22:16:06.973 に答える
0

コンソールを終了し、再起動して確認しましたか?

于 2012-02-07T10:46:57.500 に答える