azure-cosmosdb - Azure 搜索与 Azure DocumentDB

标签 azure-cosmosdb azure-cognitive-search

我知道以前曾有人问过这个问题,但我找到的答案并没有解决我的问题。

我们将 azure 搜索用于需要分析文本的场景和仅对静态数据应用过滤器的场景。即,如果您在 azure 搜索中有一个仅包含类别和价格的产品详细信息 stub ,则用户可以找到特定价格范围内的特定类别,而无需进行任何文本分析。对于这种情况,DocumentDB 更快还是 Azure Search 更快。

如果需要分面,DocumentDB 是否还提供与 Azure 搜索分面一样高效的工具(分面或分组依据)?

是否有任何方法可以访问 Azure 搜索中索引的唯一术语。例如,如果英国伦敦被索引为伦敦和英格兰,那么我们可以查找索引并获得独特的术语伦敦和英格兰。

此外,我们可以将任何元数据附加到术语中,以便我们可以识别术语“伦敦”是一个城市,而“英格兰”是一个国家/地区的名称。

非常感谢

最佳答案

一般来说,如果您只需要制定结构化查询,Cosmos DB(DocumentDB 的演变)是一个自然的选择。它在一致性模型方面具有更大的灵活性(例如,如果您想要立即读取自己的写入,这将使您的应用程序更容易),不需要模式,具有更灵活的查询等(也就是说,它是通用目的)数据库而不是像搜索引擎这样的特定领域的数据库)

如果您同时需要结构化查询和搜索式查询,那么 Azure 搜索通常可以同时处理这两种查询。如果您的应用程序可以容忍 Azure 搜索的较弱一致性模型,并且您不需要任何可以由 Cosmos DB 表达但无法在 Azure 搜索中表达的查询,则可以使用 Azure 搜索来处理此工作负载的两个方面。

If faceting is required, does DocumentDB also offer that facility

Cosmos DB 确实支持聚合,您可以在此处阅读有关此内容的更多信息: https://azure.microsoft.com/en-us/blog/planet-scale-aggregates-with-azure-documentdb/?v=17.23h

除非您拥有巨大的数据/查询量,否则性能更多地取决于您提供的容量,而不是您选择的服务所固有的功能。也就是说,Cosmos DB 在读写延迟方面提供严格的 SLA。

Is there any way of accessing the unique terms indexed in Azure Search

这似乎是一个不同的主题,如果您需要更多细节,也许可以开始另一个问题。简而言之,没有办法访问实际的术语词典。如果您需要知道存在哪一组术语,有时可以通过将您关心的所有术语(可能是总数的子集)存储在每个文档的 Collection(String) 字段中,然后对其进行分面来实现此目的。

关于azure-cosmosdb - Azure 搜索与 Azure DocumentDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44578999/

相关文章:

azure - CosmosDB 查找消息完成的平均时间

c# - 无效的 Continuation token CosmosDB

azure - 如何在 Windows 版 Docker 上运行 Cosmos DB 模拟器?

azure-cosmosdb - Azure 搜索与 Azure DocumentDB 索引错误 : _ts column not present

具有分区文档数据库的 Azure 搜索服务

c# - 文档数据库请求连续 token 在第一次迭代时未设置

asp.net - 值 'AddOrder' 无效

azure-cognitive-search - 从 Azure 搜索中检索具有非默认计数值 (10) 的分面结果

Azure 搜索索引器无法检索从 DocumentDB 中的文档归档的 GeographyPoint

azure - Azure 搜索服务上的 CORS 问题