我知道之前已经问过这个问题,但我找到的答案并没有解决我的问题。
我们正在使用azure搜索我们需要分析文本的场景以及仅将过滤器应用于静态数据的场景。即如果您在天蓝色搜索中只有类别和价格的产品详细信息存根,用户可以在特定价格范围内找到特定类别,而无需进行任何文本分析。对于这种情况,DocumentDB更快或Azure搜索。
如果需要进行构面,DocumentDB是否也提供与Azure Search Faceting一样高效的工具(Faceting或group by)?
是否有任何方法可以访问Azure Search中索引的唯一字词。例如,如果英国伦敦被列为伦敦和英格兰,我们可以查看该指数并获得伦敦和英国的独特条款。
此外,我们是否可以在条款中添加任何元数据,以便我们可以确定伦敦是一个城市,而英格兰是一个国家的名称。
非常感谢
答案 0 :(得分:2)
一般来说,如果只需要制定结构化查询,Cosmos DB(DocumentDB的演变)就是一个自然的选择。它在一致性模型方面具有更大的灵活性(如果您想要,例如,可以使您的应用程序更容易立即读取您自己的写入),不需要架构,具有更灵活的查询等等(即,它'是一个通用数据库而不是像搜索引擎这样的特定于域的数据库
如果您需要结构化搜索和搜索样式查询,那么Azure搜索通常可以同时处理这两种查询。如果您的应用程序可以容忍Azure搜索的较弱一致性模型,并且您不需要Cosmos DB可以表达的任何无法在Azure搜索中表达的查询,则可以将Azure搜索用于此工作负载的两个方面。
如果需要刻面,DocumentDB还提供该设施
Cosmos DB支持聚合,您可以在此处阅读更多相关信息: https://azure.microsoft.com/en-us/blog/planet-scale-aggregates-with-azure-documentdb/?v=17.23h
除非您拥有庞大的数据/查询量,否则性能更多地取决于您提供的容量,而不仅仅是您选择的服务所固有的容量。也就是说,Cosmos DB在读写延迟方面提供严格的SLA。
是否有任何方法可以访问Azure搜索中索引的唯一字词
这似乎是一个不同的主题,如果您需要更多细节,可能会提出另一个问题。简短版本是没有办法访问实际的术语词典。如果您需要知道存在哪些术语集,有时您可以通过在每个文档的Collection(String)字段中存储您关心的所有术语(可能是总计的一部分)来完成此操作,然后再对其进行分析。