私が取り組んでいるプロジェクトでは、クライアントには古くて大規模な (テラバイト範囲) RDBMS があります。あらゆる種類のクエリは遅く、スキーマを修正/リファクタリングする時間がありません。最適化が必要な一般的なクエリのセットを特定しました。このセットは、フルテキスト クエリとメタデータ クエリの 2 つに分かれています。
私の計画は、データベースからデータを抽出し、それぞれが特定のクエリ セット用に最適化された 2 つの異なるストレージ システムに分割することです。
全文検索の場合、Solr は最も理にかなったエンジンです。シャーディングとレプリケーション機能により、問題の半分に最適です。
メタデータ クエリの場合、どのルートを使用すればよいかわかりません。現在、「権限のある」RDBMS からのデータの特定のサブセットを表す、非常に非正規化されたスキーマを持つ RDBMS を使用することを考えています。ただし、私のクライアントは、そのようなサブシステムのシャーディングとレプリケーションの欠如、およびそれらの機能を既に含んでいる Solr と比較して、そのような機能を設定することの難しさ/複雑さについて懸念しています。この場合のメタデータは、整数、日付、ブール、ビット、および文字列 (最大サイズは 10 文字) の形式を取ります。
上記のメタデータのクエリに特に役立つ可能性がある、組み込みのシャーディングとレプリケーションを備えたデータベース ストレージ システムはありますか? 優れたクエリ エンジンを提供する、SQL を使用しないソリューションがあるのではないでしょうか。
照らしてください。
追加/応答:
Solr はメタデータに使用できますが、メタデータは揮発性です。したがって、インデックスに頻繁にコミットする必要があります。これにより、検索がかなり速く低下します。