4

そのため、私はsolr sunspotを数日間使用していて、その問題に少し夢中になっています。いろいろなサイトで答えを探してきましたが、アイデアが違う人も多いようです。自動インデックスがオンになっているさまざまな環境で、sunspotがモデルのインデックス作成/再インデックス作成をどのように管理するかを理解しようとしています。これが私が結論付けたものです:

開発/製品:オブジェクトを保存/更新すると、solr内のそのオブジェクトのインデックスが自動的に更新されます

テスト:オブジェクトを保存/更新してもインデックスは自動的に更新されないため、object.reindexを呼び出す必要があります。それを有効にするために。

コンソール:テストと同じです。solrを適切に更新するには、インデックスの再作成が必要です。

それで、これは正しいように見えますか?私のsolrサンスポットの設定に問題があるのか​​、それともこれらの異なる環境で同じように機能しないのか、それは長い間私を殺していました。どんな助けでも大歓迎です!

4

2 に答える 2

9

Solrでドキュメントを更新した後、「コミット」を発行して、変更をディスクに書き込み、検索結果に表示されるようにするようにSolrに指示する必要があります。Sunspot :: Railsは、Railsリクエストの過程でこれを自動的に処理しますが、それ以外の場合(テストでは、コンソールから)、明示的に行う必要があります。簡単Sunspot.commitです。

于 2011-05-03T11:51:16.140 に答える
1

インデックスを更新するには、主に3つの方法があります。

  1. object.index:オブジェクトにインデックスを付けますが、すぐにはインデックスに登録されない場合があります
  2. object.index!:オブジェクトにすぐにインデックスを付けます
  3. Class.reindex:モデル上のすべてのオブジェクトにすぐにインデックスを付けます

.indexを使用する必要があるようです。コンソールの.indexメソッドの代わりにメソッド。

于 2011-12-05T20:22:13.363 に答える