Azure 搜索上分区的 CosmosDb 集合的自动索引
Automatic indexing of partitioned CosmosDb collections on Azure Search
我们正在做一些工作以从 CosmosDb 集合中自动建立索引。此集合已分区,以便能够无限制地增加 RU。
我们想为每个 CosmosDb 分区创建一个 Azure 搜索索引,但是从 CosmosDb 读取分区键提要 returns 分区键(例如“0”、“1”等)而不是实际的分区键集合被分区的值(在我们的例子中是文化 'en-US'、'fr-FR' 等),这意味着在 Azure 搜索上创建数据源时,很难以编程方式创建数据源、索引和即时索引器。
我们正在使用容器查询来过滤一些文档(并非所有文档都需要索引)以进行索引,但是有没有办法指定 CosmosDb 分区键或在 SQL 中指定它以另一种方式查询而不是尝试过滤分区键字段(在我们的例子中为“/Culture”)?
您正在阅读的提要似乎返回分区键范围而不是定义的分区键值。如果您不知道,Cosmos DB 会将多个逻辑分区键值映射到引擎盖下的单个物理分区键范围,以便最好地利用您的存储。 Some documentation on that is here.
除了在查询本身上添加分区键筛选器之外,Azure 搜索目前无法对逻辑或物理分区进行筛选。但是,您应该能够根据需要以编程方式为每个数据 source/indexer 创建此查询,方法是使用以下查询从 Cosmos DB 集合中获取所有不同的分区键值,而不是使用分区键范围提要:
SELECT 与 c
不同 c.Culture
然后遍历所有结果,为每个键值生成以下查询:
SELECT * FROM c WHERE c.Culture==分区键值
我们正在做一些工作以从 CosmosDb 集合中自动建立索引。此集合已分区,以便能够无限制地增加 RU。
我们想为每个 CosmosDb 分区创建一个 Azure 搜索索引,但是从 CosmosDb 读取分区键提要 returns 分区键(例如“0”、“1”等)而不是实际的分区键集合被分区的值(在我们的例子中是文化 'en-US'、'fr-FR' 等),这意味着在 Azure 搜索上创建数据源时,很难以编程方式创建数据源、索引和即时索引器。
我们正在使用容器查询来过滤一些文档(并非所有文档都需要索引)以进行索引,但是有没有办法指定 CosmosDb 分区键或在 SQL 中指定它以另一种方式查询而不是尝试过滤分区键字段(在我们的例子中为“/Culture”)?
您正在阅读的提要似乎返回分区键范围而不是定义的分区键值。如果您不知道,Cosmos DB 会将多个逻辑分区键值映射到引擎盖下的单个物理分区键范围,以便最好地利用您的存储。 Some documentation on that is here.
除了在查询本身上添加分区键筛选器之外,Azure 搜索目前无法对逻辑或物理分区进行筛选。但是,您应该能够根据需要以编程方式为每个数据 source/indexer 创建此查询,方法是使用以下查询从 Cosmos DB 集合中获取所有不同的分区键值,而不是使用分区键范围提要:
SELECT 与 c
不同 c.Culture然后遍历所有结果,为每个键值生成以下查询:
SELECT * FROM c WHERE c.Culture==分区键值