如何使用 Azure AI 搜索对 Cosmos 数据源中的特定集合建立索引?

问题描述 投票:0回答:1

我已为 Azure AI 搜索和 CosmosDB 设置资源。在我的一个 CosmosDB 资源中,我有两个包含文档的集合:Collection1 和 Collection2。

在 Azure AI Search 中创建索引或索引器时,我可以使其与 CosmosDB 资源连接,并且它仅返回 Collection1 中的数据。这对于该集合来说很好,但是当使用 Collection2 的字段名称创建另一个索引/索引器时,它会返回所有 null。

我知道索引仅从 Collection 1 中检索和读取数据,因为 1)它返回 Collection1 中文档的 _ids 和 2)当创建索引时,键是仅存在于 Collection2 中的字段(而不是 doc_id),该索引的索引器将不会运行,表明“Collection2-only”字段不存在。

如何让索引从 CosmosDB 数据源中的指定集合返回数据?我没有看到用于在索引或索引器中指定集合的字段。

发生情况的示例:

Collection1 的示例文档:

{
    _id: 1,
    "A": "A",
    "B": "B"
}

index1:doc_id是一个字符串,可搜索,A和B是字符串,可过滤和可搜索。

indexer1:默认,dataSourceName为dataSource。 targetIndexName 是索引1

Collection2 的示例文档:

{
    _id: 2,
    "C": "C",
    "D": "D"
}

index2:doc_id可搜索,C、D可过滤可搜索。

indexer2:默认,dataSourceName为dataSource。 targetIndexName 是索引2

索引1的结果

{
    _id: 1,
    "A": "A",
    "B": "B"
}

Index2结果

{
    _id: 1,
    "C": null,
    "D": null
}

请注意,上面返回的是 Index2 中指定且出现在 Collection2 中的字段,但返回 Collection1 中文档的 _id。

azure-cosmosdb azure-cognitive-search
1个回答
0
投票

这是一个非常简单的修复,但我不知何故错过了。

添加CosmosDB数据源时,每个集合就是一个数据源。因此,我错误地认为我已将所有集合连接到一个数据源中。

要添加另一个收集源:在 Azure AI 搜索门户中,您可以在概述页面上导入数据。从那里,您可以选择 CosmosDB 数据源选项,然后选择数据库和集合。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.