6

マスター/スレーブ構成、数百のコア、数億のドキュメントで Solr 3.6 を使用しており、24 時間体制のアップタイムが必要です。Solr 4.0 にアップグレードしたいと考えています。


正しい方法は、古いインデックスのファイルシステム コピーを新しい場所に作成し、SolrConfig を次のように構成することだと思います。

<luceneMatchVersion>LUCENE_33</luceneMatchVersion>

質問 1:これにより、Solr は廃止された形式を使用するようになりますか? これにより、インデックスがオンラインで 4.0 形式に変換されますか?


質問 2:インデックスを変換するためのダウンタイムが少なくて済む、より良い方法はありますか? 古いサーバーから新しいサーバーに複製できますか?


質問 3:また、Solr 4.0 が私たちと同じように頻繁に使用しても安全かどうかを確認できる人はいますか?

4

2 に答える 2

1

あなたが保つなら

<luceneMatchVersion>LUCENE_33</luceneMatchVersion>

使用する代わりに:

<luceneMatchVersion>LUCENE_40</luceneMatchVersion>

Solr 4 / Lucene 4 のメリットを十分に享受することはできません。ただし、LUCENE_40すべてのインデックスを再構築しないと切り替えることはできません。そのままにしLUCENE_33ておくと、古いインデックス形式が引き続き使用されます。


質問 2 については、十分なリソースがある場合は、Solr の 2 つ目のインスタンスをセットアップし、インデックスを Solr4 にコピーします。これは、SolrJ を使用して Java プログラムを作成することで実行できます。そこに既存のものがあるかどうかはわかりませんが、おそらくあるでしょう。

メリット:ライブでできる。

欠点: Solr 3 インスタンスが常に更新されている場合、うまく機能しません。

各レコードが更新された日時を記録するタイムスタンプ フィールドがある場合、次のようになります。

<field name="timestamp" type="date" indexed="true" stored="true" default="NOW" multiValued="false"/>

これは、読み取り時にタイムスタンプが現在の日付よりも小さいクエリを実行できるため、結果を反復処理するときに結果が変更される可能性が低いため、より簡単になります (ただし、既存のレコードが更新または削除された場合は不可能ではありません)。


Solr 4.0 を 4 か月以上問題なく実行しています。これは、1 億 5000 万のドキュメントを持つ単一の Solr コアです。

于 2013-04-18T03:58:02.237 に答える