私のアプリケーションの1つでは、巨大なデータ(30GB)にインデックスを付ける必要があります。このデータのインデックス作成にはSOLRを使用しています。schema.xmlには50個のフィールドがあります。さまざまなデータベースのデータにインデックスを付けています。
ただし、すべてのフィールドのインデックス作成時に、データは利用できません。そのため、複数のコアを作成し、各コアに個別にインデックスを付けました。
例:-コア0を使用して、個別のクエリを使用して5つのフィールドにインデックスを付けています
デュアルからField1、Field2、Field3、Field4、Field5を選択します。
Field1---コア間で共通のフィールドField2---このコアでインデックス付けされるフィールドField3--このコアでインデックス付けされるフィールドField4--このコアでインデックス付けされるフィールドField5--このコアでインデックス付けされるフィールド
したがって、core0の残りのすべてのフィールドは、上記の5つのフィールド以外はnullになります。
コア1の次
コア1個別のクエリを使用して3つのフィールドにインデックスを付けています
デュアルからField1、Field6、Field6を選択します。
Field1---コア間で共通のフィールドField6---このコアでインデックス付けされるフィールドField7--このコアでインデックス付けされるフィールド
すべてのコアに共通のschema.xmlを使用しています。
クエリについては、各コアを個別にクエリして結果をマージするカスタムリクエストハンドラーを作成しました。また、各コアのデータは3時間ごとに更新されます。solr4.0で部分更新機能を試しましたが、インデックス作成に時間がかかりすぎます......あまり役に立ちません
この問題を処理するためのより良いアプローチ/設計はありますか?
ありがとう、ラヴィ