У меня есть ресурсы, настроенные для Azure AI Search и CosmosDB. В моем единственном ресурсе CosmosDB у меня есть две коллекции с документами: Collection1 и Collection2.
При создании индекса или индексатора в Azure AI Search я могу подключить его к ресурсу CosmosDB, и он будет возвращать данные только из Collection1. Это хорошо для этой коллекции, но при создании другого индекса/индексатора с именами полей Collection2 он возвращает все значения NULL.
Я знаю, что индекс извлекает и считывает данные только из первой коллекции, потому что 1) он возвращает _ids документов в коллекции 1 и 2) при создании индекса с ключом, являющимся полем, которое присутствует только в коллекции 2 (а не doc_id), индексатор для этого индекса не запустится, заявив, что поле «Только для коллекции2» не существует.
Как заставить мои индексы возвращать данные из указанной коллекции в источнике данных 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 — это index2.
Результат Индекса1
{
_id: 1,
"A": "A",
"B": "B"
}
Результат Индекса2
{
_id: 1,
"C": null,
"D": null
}
Обратите внимание, что приведенное выше возвращает поля, указанные в Index2 и присутствующие в Collection2, но возвращает _id документа в Collection1.





Это было очень простое решение, которое я почему-то пропустил.
При добавлении источника данных CosmosDB каждая коллекция представляет собой один источник данных. Значит, я ошибочно предположил, что соединил все свои коллекции в один источник данных.
Чтобы добавить еще один источник сбора данных: на портале Azure AI Search вы можете импортировать данные на странице «Обзор». Оттуда вы можете выбрать вариант источника данных CosmosDB, затем выбрать базу данных и коллекцию.
Имеют ли данные значение? @Sampath Я добавлю примеры данных в свой пост, чтобы помочь людям лучше понять.