2

sunspot_rails を使用して検索を実行しようとすると、ECONNREFUSED エラーが発生するという問題があります。gem (sunspot_rails と sunspot_solr) はどちらも正しくインストールされているようです。バージョン1.3.3を実行していて、サーバーが正しく実行されています。

これに関する別の投稿を見つけましたが、その投稿は太陽黒点 solr サーバーの起動のみを推奨していました。私は間違いなくそれをしましたが、エラーは解決しません。

問題は、サーバーがオンになっているポートが原因であると思います。からの出力を見るRAILS_ENV=development rake sunspot:solr:runと、サーバーがポートで実行されていることがわかります8983RAILS_ENV=production rake sunspot:solr:run同じ効果を持つコマンドも試しました。

sunspot.yml構成ファイルを調べると、次のように表示されます。

production:
  solr:
    hostname: localhost
    port: 8983
    log_level: WARNING

development:
  solr:
    hostname: localhost
    port: 8982
    log_level: INFO

test:
  solr:
    hostname: localhost
    port: 8981
    log_level: WARNING

開発用のポートにあるはずです8982が、何をしても、ポートでサーバーを再起動し続けるようです8983。これがどのように起こっているのでしょうか?

ありがとう!

更新:潜在的な原因が見つかりました。私のプロジェクト フォルダーには、ファイル/solr/conf/scripts.confに次のものが含まれていますsolr_port=8983。これは、アクティブな Rails 環境に関係なく、ハードコーディングされたポートを意味しているようです。

4

1 に答える 1

0

Sunspot のバグであることが判明しました。完全な説明のために提出した問題へのリンクは次のとおりです。

https://github.com/sunspot/sunspot/issues/262

私の回避策は、.yml ファイルを編集し、すべてのポート (テスト、開発、および運用) を 8983 に変更することでした。

于 2012-07-23T17:16:11.820 に答える