elasticsearch,Mongodb,elasticsearch" /> elasticsearch,Mongodb,elasticsearch" />

MongoDB+;弹性搜索数据模型

MongoDB+;弹性搜索数据模型,mongodb,elasticsearch,Mongodb,elasticsearch,我使用nosql的时间不长,我有一个主表,它存储对外部表的引用。对于搜索,我使用elasticsearch,我需要联接(联接表)来获得所需的信息,但nosql不使用联接。我找到了子/父解决方案,但也有它们的问题。有任何替代方案或更好的方法来改变结构,使用嵌套对象吗?Nosql有一些缺点,如NoJoins。为了克服这个缺点,我们需要在mongodb中查询两个或三个集合 1)我们需要在存储之前执行join。如果您想从一组数据计算统计数据,请执行mapReduce并存储在集合中 2)如前所述,嵌套对象

我使用nosql的时间不长,我有一个主表,它存储对外部表的引用。对于搜索,我使用elasticsearch,我需要联接(联接表)来获得所需的信息,但nosql不使用联接。我找到了子/父解决方案,但也有它们的问题。有任何替代方案或更好的方法来改变结构,使用嵌套对象吗?

Nosql有一些缺点,如NoJoins。为了克服这个缺点,我们需要在mongodb中查询两个或三个集合

1)我们需要在存储之前执行join。如果您想从一组数据计算统计数据,请执行mapReduce并存储在集合中

2)如前所述,嵌套对象也更有效。如果硬盘空间id不是问题,您可以使用嵌套文档。但我想您不能创建大于16mb的文档

使用Elasticsearch

3)在ES中如果您希望数据来自多个索引,则可以使用别名。 提及

4)和弹性搜索中的最后一个父子概念。可能看起来很复杂。但它帮助很大

如果您的应用程序多写少读意味着在读取过程中执行连接。例如查询两个或多个集合以获取单个信息

如果应用程序读多写少在存储文档之前执行连接。使用嵌套对象是正确的选择一次调用即可写入一次读取。这将大大减少CU使用量

希望有帮助