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