特定のアルゴリズムを、RavenDB/CouchDB が使用する種類の map-reduce インデックス、つまり「事前計算済み」map-reduce に変換できるかどうかを確認しようとしています (つまり、インデックスは挿入時ではなく更新時に更新されます)。実際のクエリを実行します)。
カテゴリ別にグループ化された 50,000 の商品を扱う典型的なオンライン ストアがあるとします。すべての製品には、「[赤、丸、金属]」のような「属性値」のコレクションがあります。
ウェブサイトには非常に多くの製品があり、おそらく各カテゴリには多くのアイテムがあるため、ユーザーが現在表示している製品を「フィルタリング」する別の方法をユーザーに提供したいと考えています.
たとえば、カテゴリが「20 ドル未満」の場合、このカテゴリにはたくさんの製品があります。しかし、私たちのユーザーは、20 ドル未満の赤の製品だけを表示する必要があります。残念ながら、「20 ドル未満」カテゴリには「赤」というサブカテゴリはありません。
私たちのアルゴリズムは、製品の現在のリストを取得し、「興味深い」属性と属性値のリストを生成します。つまり、製品のリストが与えられると、次のように出力されます。
Color
Red (40)
Blue (32)
Yellow (17)
Material
Metal (37)
Plastic (36)
Wood (23)
Shape
Square (56)
Round (17)
Cylinder (12)
この種のアルゴリズムは、RavenDB/CouchDB の map-reduce インデックスで何らかの方法で事前に計算できますか? そうでない場合は、なぜ正確に (将来その種のアルゴリズムを特定できるようにするため)、そうである場合はどのように?
C # 4.0 Visual Studio テスト ソリューションが利用可能で、潜在的なデータ構造とサンプル データを示し、map-reduce の実装を試してみることもできます (これは事前計算可能ではないようです)。