我有一个模拟开始网站的例子。假设该网站拥有数百家商店和数百万种产品。每个商店的产品范围:1000-100.000产品/商店。我需要能够聚合产品和商店领域。所有产品和所有商店都有相同的架构。
产品
{
"productName"
"price"
"category"
}
商店
{
"shopName"
"rating"
}
1)拥有a)1索引/商店,b)相同的索引和1种类型/商店或c)相同的索引,相同的类型并且有一个字段来确定产品的商店是否更有效?
我阅读了一些相关的文章,其中大多数赞成相同的索引和1种类型/商店。但他们说如果有一个单一的索引有大量的文档,它可能比拥有多个索引更慢。
2)我还需要在商店和产品之间进行JOINS和聚合。例如,我需要能够从评级高于8/10的商店中检索所有产品,并获得每个类别的产品数量。是否最好使用a)应用程序端JOIN,b)父子关系,c)Siren plug-in,d)其他东西?
答案 0 :(得分:1)
对于您提到的用例,我肯定会使用单个非规范化索引/类型。如果您需要更多商店的字段,那么您将为商店创建另一个索引,同时仍保留第一个非规范化索引。请注意,您可能需要与商店名称一起使用唯一的商店ID。