0

リレーショナル データベースのマッピングに POJO (Plain Old Java Object) クラスを使用し、Apache Solr を使用してデータベースのインデックスを作成しています。

pojo クラスを Apache Solr に再利用できるかどうかわかりません。

マッピング クラスは特殊すぎて外部キーの関係を考慮して設計されているため、Solr (単一のスキーマ検索サーバー) で使用することは非常に困難ですが、Apache Solr 用の新しい POJO クラスを作成することも困難です。

したがって、再利用するためのより良い設計アプローチはどれかを知りたいです。

また、同じ POJO クラスを再利用することの落とし穴も知りたいです。

4

1 に答える 1

1

SOLR はリレーショナル データベースとは大きく異なります...基本的に、大きなテーブルのようなものです (多値列などのいくつかの違いがあります)。

今、私はあなたの問題を具体的な実装(POJO)の一歩後ろに見ています...

まず、テーブルを非正規化する必要があります...これは、SOLRを使用するときに行う必要がある非常に難しいことです。ER から SOLR スキーマに渡すことを意味します。それができたら、Solrj を使用してエンティティを pojo にマップできますが、これは話の最後の部分にすぎません。

まだ非正規化について: リレーショナル データベースの上にマッピングされた一連の POJO をそのまま変換するのは意味がありません。リレーショナル データベースは汎用です。その設計アプローチはデータ中心です。つまり、最初にデータの保存方法を決定すると、SQL クライアントは必要なものを取得できるようになります。

SOLR は別の方法で動作します。スキーマをさらに正確に決定するには、検索要件 (クエリなど) を知っておく必要があります。スキーマは (データベースのような) 汎用ではありませんが、検索要件の上に階層化されています。これが、属性にインデックスを付けるかどうか、特定のフィールド、複数値、単一値、ステミングなどに必要な分析の種類を決定できる理由です。

つまり、基本的には、非正規化とクエリの要件がすべてです。

于 2013-08-23T06:12:34.117 に答える