2017-06-16 56 views
0

我知道这个问题已经被问过,但我发现答案并没有解决我的问题。Azure的搜索VS天青DocumentDB

我们用蔚蓝色的搜索,我们需要分析文本两个场景和只有一个过滤器适用于静态数据的情况。即如果您在天蓝色搜索中只有类别和价格的产品详情存根,用户可以在特定价格范围内找到特定类别,而无需进行任何文本分析。对于这种情况,DocumentDB更快或Azure搜索。

如果需要刻面,并DocumentDB还提供了该设施(或刻面或一组),也就是尽可能高效Azure的搜索车花?

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

另外,我们可以追加条款的任何元数据,以便我们能够例如识别伦敦术语是一个城市,而英格兰是一个国家的名字。

非常感谢

回答

1

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

如果你需要结构化和搜索样式的查询,那么Azure的搜索往往可以同时处理。如果您的应用程序可以容忍Azure搜索的较弱一致性模型,并且您不需要可以由Cosmos数据库表示的任何查询,而这些查询无法在Azure搜索中表示,则可以将Azure搜索用于此工作负载的两个方面。

如果需要刻面,并DocumentDB还提供该设施

宇宙DB不支持聚集,您可以阅读更多关于此这里: https://azure.microsoft.com/en-us/blog/planet-scale-aggregates-with-azure-documentdb/?v=17.23h

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

是否有访问Azure中的搜索索引的特别条款的任何方式

这似乎是一个不同的主题,如果你需要更多的细节可能启动另一个问题。简短版本是没有办法访问实际的术语词典。如果您需要知道哪些术语存在,有时您可以通过将所有您关心的术语(可能是总数的一个子集)存储在每个文档的“集合(字符串)”字段中,然后对此进行研究。

+0

感谢您的回复。我们在讨论Azure搜索有多少延迟。毫秒,秒?我上面提到的元数据呢? – user2981411

+0

这很大程度上取决于查询的类型和数据集的性质。我们的大多数客户都会在10或100毫秒的时间内看到延迟,但我们确实发现查询需要几秒钟的时间,因为它们的复杂性,所需的查询时间数据处理量等。 关于元数据,没有办法将属性附加到术语上。您可以玩技巧,例如为术语添加后缀,但必须确保在索引和查询时都添加后缀,以确保继续查找术语。 –