Azure 搜索可扩展性

标签 azure azure-cosmosdb azure-cognitive-search

我们正在开发一款可以容纳数千名用户的移动应用,并且我们使用 Azure 搜索作为我们的主要存储。根据Azure pricing model对于标准计划,查询限制设置为每秒/每单位 15 个查询。有了这些限制,并且系统应该能够容纳数千个并发用户,我们很快就会达到极限。

在我们的情况下,在扩展数千个并发用户时,Azure 搜索不是正确的选择吗? DocumentDB 是更好的选择吗?

谢谢!

最佳答案

有趣的是,您使用 Azure 搜索作为主存储,因为它并不是为数据库引擎而构建的。存储专门用于搜索内容(典型模式是将 Azure 搜索与数据库引擎(例如 SQL 数据库或 DocumentDB)结合使用),使用结果指向数据库中的“记录系统”内容.

搜索范围专门针对您的用户将生成的全文搜索查询。 Azure 搜索按单位进行扩展,每个单位每秒提供 15 次搜索。因此,如果您购买更多搜索单元,您的速度可以远远超过 15/秒。

但是:不要将此与数据库引擎查询混淆。您询问了 DocumentDB,因此以它为例:您可以使用该数据库引擎进行远远超过 15/秒的查询,并且可以独立扩展。这同样适用于任何基于虚拟机的数据库解决方案、SQL 数据库等 - 它们都可以扩展。

这实际上取决于您是否需要大量全文搜索。如果是这样,那就太好了 - 只需将 Azure 搜索扩展到所需的单位数量即可处理请求流量。如果您可以执行更多特定于数据库的搜索,而不需要通过 Azure 搜索驱动您的请求,那么您就不需要进行太多扩展,并且可以利用 native 数据库查询功能。

关于Azure 搜索可扩展性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30370102/

相关文章:

asp.net-mvc - Azure VM 上的安全 Solr 搜索引擎

azure - 我们如何在.Net SDK中创建或列出Azure虚拟机的标签

sql - 如何使用 SQL 在 CosmosDB 中搜索数组

具有集成更改跟踪的 Azure 搜索数据源

Azure 认知搜索使用情况监控

azure - 子资源负载加密失败,错误为: Failed to encrypted linked service credentials on self-hosted IR

c# - 自托管 JobHost 时查找托管 Uri

使用 documentDB 的 Azure 搜索找不到数据

c# - Azure 中的计划任务

javascript - 获取索引Azure搜索失败 'Response for preflight has invalid HTTP status code 403'