2012-06-12 4 views
5

現在、ファセットカタログナビゲーションを使用して、電子商取引サイトのSolr検索を展開する予定です。Solrでのリレーショナルデータの扱い方

私たちは、製品用の少し複雑なデータスキーマとその仕様属性を動的に持っています。

このデータをSolrにどのようにマップするのか、私たちは確かに理解できませんか?製品索引用と、製品または単一スキーマとマップされた仕様属性用の2つの索引が必要ですか。

しかし、どのような例が素晴らしいでしょう。

答えて

8

現在、複数のソルインデックスに参加することはできません。 Solr 4.0には、Joinという機能があります。ただし、これにより個々の索引内の文書を結合することができます。

標準化されたデータベーススキーマは、Solrでインデックスを作成する前にフラット化する必要があります。これは実際にデータベースの結合が高価であるため、実行時パフォーマンスの向上が最も得られる場所です。

製品と仕様の間でいくつかの列を重複させても問題ありません。個々の属性と基数を記述することができるかもしれませんが、私はさらに議論することができます。

私の背景は、高度に正規化されたデータベーススキーマを3つのソルインデックスにインデックスしました。私はカーディナリティー・テストを使用し、この分割を絞り込むために用途を検索しました。たとえば、ある契約では顧客契約があり、別の契約では代理店契約があり、別のインデックスでは顧客と代理店との関係がありました。私が得ることのできる最小限の指標に着いた。サービス層は、3つのインデックスを統合します。ここで単一のインデックスを作成すると、それを維持するには巨大かつ複雑になりました。

あなたが試すことができる他のアプローチの1つは、検索ソルバーであり、個々のドキュメントをデータベースディップで充実させることです。これにはコストがかかりますが、ソル検索で主キーをすでに解決していれば、これらのルックアップはそれほど高価ではありません。

+0

Solr 4は準備完了ですか? – Krunal

+0

歴史的に、Solrのプレリリースは、本番環境で使用されています(私たちも含む)。もちろん、問題を扱う企業の食欲、必要な機能セット、ソルバーバグなどを修正できるプログラマの可用性に依存します。 – user1452132

関連する問題