現在、ファセットカタログナビゲーションを備えたeコマースサイトのSolr検索を展開することを計画しています。
動的な製品とその仕様属性の少し複雑なデータスキーマがあります。
このデータをSolrにマッピングする方法を理解することはできませんか?2つのインデックスが必要ですか。1つは製品インデックス用で、もう1つは製品または単一のスキーマにマップされる仕様属性用です。
しかし、どのように、どんな例も素晴らしいでしょう。
現在、ファセットカタログナビゲーションを備えたeコマースサイトのSolr検索を展開することを計画しています。
動的な製品とその仕様属性の少し複雑なデータスキーマがあります。
このデータをSolrにマッピングする方法を理解することはできませんか?2つのインデックスが必要ですか。1つは製品インデックス用で、もう1つは製品または単一のスキーマにマップされる仕様属性用です。
しかし、どのように、どんな例も素晴らしいでしょう。
現在、複数の solr インデックスにまたがって参加することはできません。Solr 4.0 にはJoin機能が含まれる予定です。ただし、これにより、個々のインデックス内でドキュメントを結合できます。
正規化されたデータベース スキーマは、Solr でインデックスを作成する前にフラット化する必要があります。データベース内の結合はコストがかかるため、これは実際に実行時のパフォーマンスが最も向上する場所です。
製品と仕様の一部の列の重複は問題ありません。個々の属性とカーディナリティを説明できれば、さらに意見を述べることができます。
私のバックグラウンドは、高度に正規化されたデータベース スキーマを 3 つの solr インデックスにインデックス付けしたことです。カーディナリティ テストを使用し、ユースケースを検索してこの分割を絞り込みました。たとえば、あるインデックスには顧客契約、別のインデックスにはエージェント契約、別のインデックスには顧客とエージェント間の関係がありました。到達できる最も少ないインデックスに到達しました。サービス層は 3 つのインデックスを統合します。ここで単一のインデックスを作成すると、非常に巨大で複雑になりすぎて維持できなくなります。
試すことができる他のアプローチの 1 つは、solr を検索し、データベース ディップによって個々のドキュメントを充実させることです。これにはいくらかのコストがかかりますが、solr 検索ですでに主キーを解決している場合、これらのルックアップはそれほど高価ではありません。