Cosmos DB:更快的搜索选项

问题描述

我们有一个巨大的 cosmosDB 容器,包含数十亿行和近 300 列。数据按照我们大多数时候查询的方式进行分区和建模。

例如:用户表由 userId 分区,这就是为什么下面的查询工作正常。

Select * from User where userId = "user01234"

但在某些情况下,我们需要以不同的方式查询需要排序然后查询的数据。

例如:使用用户帖子和发布日期从用户表中获取数据

Select * from user where userPostId = "P01234" orderBy date limit 100

这个查询需要很多时间,因为数据的大小和数据没有基于 query2(用户 Post)进行分区。

我的问题是 - 当数据未进行相应分区时,我们如何使 query2 和其他类似查询更快。

选项 1:“创建按 Query2 分区的单独集合”- 这将使查询更快,但对于任何新查询,我们最终都会创建一个新集合,这是数十亿条记录的重复。 [昂贵的选择]

选项 2:“在 DB 之上构建弹性搜索?”这是一个耗时的选项,对于这个缓慢的查询问题可能会造成过度杀伤。

还有其他可以使用的选项吗?让我知道你的想法。

提前致谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)