私は、開始サイトをモデル化する例を持っています。サイトに数百のショップと数百万の製品があるとします。 1店舗あたりの製品数:1000〜100,000品目/ショップ私は、製品とショップのフィールドを集めることができる必要があります。すべての製品とすべてのショップは同じスキーマを持ちます。Elasticsearchでデータをモデル化する最も効率的な方法
製品
{
"productName"
"price"
"category"
}
ショップ
{
"shopName"
"rating"
}
1)、A)1個のインデックス/ショップ、b)は同じインデックスと1種類/ショップまたはc)同じインデックスを持っていることが、より効率的です同じタイプで、製品の店を決定するフィールドがありますか?
私はいくつかの関連記事を読んでおり、そのほとんどは同じインデックスと1つのタイプ/ショップを好んでいます。しかし、彼らは、多数のドキュメントを持つ1つのインデックスがあれば、複数のインデックスを持つよりもさらに遅いかもしれない、と彼らは言う。
2)ショップと商品の間でJOINSと集計を実行する必要もあります。たとえば、8/10を超える店舗からすべての製品を取得し、カテゴリごとの製品数を取得できるようにする必要があります。 a)アプリケーション側のJOIN、b)親子関係、c)Siren plug-in、d)何か他のものを使用することが望ましいですか?
最近私も同様の問題を解決しなければなりませんでした。まず、すべての検索シナリオを書き留めます。データの検索方法とクエリから返す必要があるものを考えます。次に、各ソリューションの長所と短所についてお読みください。答えがあります。たとえば、私が8/10を超える格付けを持つ何千ものショップを持っていて、他のクエリにこれらの何千ものIDを提供しなければならないので、アプリケーションの参加を使用しないと、パフォーマンスの問題が発生します。 –
Thnx Adam。あなたは、すべてのシナリオを考える必要があるという点では間違いありません。私はデータを構造化することができる多くの異なる方法があり、私はその全ての意味を持っているわけではないということです。私はESの内部的な働きを理解するのに時間を費やす必要があると思います。 – panipsilos
あなたは進歩しましたか? –