这个问题是关于在深入研究实验和实现的细节之前做出架构选择。这是关于弹性搜索与 MongoDB 在可扩展性和性能方面的适用性,用于某种特定目的。
假设两者都存储具有字段和值的数据对象,并允许查询该对象主体。因此,可能根据临时选择的字段过滤掉对象的子集,这对两者都适用。
我的应用程序将围绕根据标准选择对象展开。它将通过同时过滤多个字段来选择对象,换句话说,它的查询过滤条件通常包括 1 到 5 个字段,在某些情况下可能更多。而选择作为过滤器的字段将是大量字段的子集。想象一下现有的大约 20 个字段名称,每个查询都是尝试从这 20 个字段中的几个字段过滤对象(它可以少于或超过 20 个整体字段名称,我只是使用这个数字来演示字段到在每个离散查询中用作过滤器的字段)。过滤可以通过所选字段的存在以及字段值来进行,例如过滤掉具有字段 A 且其字段 B 在 x 和 y 之间的对象,
我的应用程序将不断地进行这种过滤,而在任何时候哪些字段用于过滤方面都没有任何或很少的常数。也许在 elasticsearch 中需要定义索引,但即使没有索引,速度也可能与 MongoDB 相当。
根据进入存储的数据,没有关于此的特殊细节..对象在插入后几乎不会更改。也许需要删除旧对象,我想假设两个数据存储都支持在内部或通过应用程序查询过期删除内容。(不太常见的是,适合某个查询的对象也需要被删除)。
你怎么看?而且,你有没有尝试过这个方面?
对于此类任务,我对两个数据存储中的每一个的性能和可扩展性感兴趣。这是一种架构设计问题,欢迎使用商店特定选项或查询基石的详细信息来使其架构良好,作为经过深思熟虑的建议的演示。
谢谢!