2

検索サーバーのダウンタイムに対するアプリケーションの回復力を高めようとしています。これを実現するために、自動インデックス作成と削除を無効にし、バックグラウンド プロセスで手動で実行しようとしています。

私はしようとしています

searchable :auto_index => false, :auto_remove => false do
...
end

しかし、レコードを保存または破棄しようとするたびに、接続エラーが発生します。

バックトレースは、エラーがsolr検索可能ファイルから発生していることを示しているため、問題の原因は間違いなくsunspot_railsです。これは、破棄時のバックトレースからのスライスです。

...
rsolr (1.0.8) lib/rsolr/client.rb:67:in `update'
rsolr (1.0.8) lib/rsolr/client.rb:121:in `delete_by_id'
sunspot (1.3.3) lib/sunspot/indexer.rb:36:in `remove'
sunspot (1.3.3) lib/sunspot/session.rb:137:in `block in remove'
sunspot (1.3.3) lib/sunspot/session.rb:136:in `each'
sunspot (1.3.3) lib/sunspot/session.rb:136:in `remove'
sunspot (1.3.3) lib/sunspot/session_proxy/abstract_session_proxy.rb:11:in `remove'
sunspot (1.3.3) lib/sunspot.rb:410:in `remove'
sunspot_rails (1.3.3) lib/sunspot/rails/searchable.rb:390:in `solr_remove_from_index'
sunspot_rails (1.3.3) lib/sunspot/rails/searchable.rb:93:in `block in searchable'
...

これらのフックを無効にするオプションが機能しない理由は何ですか? それらを実際に無効にする方法はありますか?

ありがとう

4

1 に答える 1

2

私自身の質問に対する答えを見つけました:

自動コールバックが無効になっている間、私はまだ別のステップでそれを汚していたことがわかりました。sunspot_rails には、リクエストの最後に実行されるクリーンアップ ステップがあり、すべてのダーティ レコードを solr サーバーにコミットしようとします。無効にするauto_commit_after_request: falseには、sunspot.yml.

于 2012-07-19T15:09:50.183 に答える