Загрузка данных в индекс поиска в службе "Поиск ИИ Azure"
В этой статье объясняется, как импортировать документы в предопределенный индекс поиска. В службе "Поиск ИИ Azure" сначала создается индекс поиска с импортом данных следующим шагом. Исключением является мастер импорта на портале и конвейерах индексатора, которые создают и загружают индекс в одном рабочем процессе.
Принцип работы импорта данных
Служба поиска принимает документы JSON, соответствующие схеме индекса. Служба поиска импортирует и индексирует обычный текст и векторы в ФОРМАТЕ JSON, используемые в полнотекстовом поиске, векторном поиске, гибридном поиске и сценариях интеллектуального анализа знаний.
Содержимое обычного текста можно получить из буквенно-цифровых полей во внешнем источнике данных, метаданные, полезные в сценариях поиска, или обогащенное содержимое, созданное набором навыков (навыки могут извлекать или выводить текстовые описания из изображений и неструктурированного содержимого).
Векторное содержимое векторов векторируется с помощью внешней модели внедрения или интегрированной векторизации с помощью функций поиска ИИ Azure, которые интегрируются с примененным ИИ.
Эти документы можно подготовить самостоятельно, но если содержимое находится в поддерживаемом источнике данных, выполняется индексатор или мастер импорта может автоматизировать извлечение документов, сериализацию JSON и индексирование.
После индексирования данных физические структуры данных индекса блокируются. Инструкции по изменению и не могут быть изменены, см. в разделе "Обновление и перестроение индекса".
Индексирование не является фоновым процессом. Служба поиска сбалансирует индексирование и рабочие нагрузки запросов, но если задержка запроса слишком высока, можно добавить емкость или определить периоды низкой активности запросов для загрузки индекса.
Дополнительные сведения см. в стратегиях импорта данных.
Использование портала Azure
В портал Azure используйте мастеры импорта для создания и загрузки индексов в простом рабочем процессе. Если вы хотите загрузить существующий индекс, выберите альтернативный подход.
Войдите в портал Azure с помощью учетной записи Azure и найдите службу поиска.
На странице "Обзор" выберите "Импорт данных" или "Импорт и векторизация данных" на панели команд, чтобы создать и заполнить индекс поиска.
Чтобы просмотреть рабочий процесс, выполните следующие ссылки. Краткое руководство. Создание индекса поиска ИИ Azure и краткого руководства. Интегрированное векторизация.
После завершения работы мастера используйте обозреватель поиска для проверки результатов.
Совет
Мастеры импорта создают и запускают индексаторы. Если индексаторы уже определены, можно сбросить и запустить индексатор из портал Azure, что полезно при добавочном добавлении полей. Сброс заставляет индексатор начать работу, выбрав все поля из всех исходных документов.
использованию REST API
Документы — индекс — это REST API для импорта данных в индекс поиска. ИНТЕРФЕЙСы REST API полезны для первоначального проверки концепции, где можно тестировать рабочие процессы индексирования без необходимости писать много кода. Параметр @search.action
определяет, добавляются ли документы полностью или частично с точки зрения новых или заменяющих значений для определенных полей.
Краткое руководство. Поиск текста с помощью REST объясняет действия. В следующем примере представлена измененная версия примера. Она была обрезана для краткости, и первое значение HotelId было изменено, чтобы избежать перезаписи существующего документа.
Сформулируйте вызов POST, указывающий имя индекса, конечную точку docs/index и текст запроса, включающий
@search.action
параметр.POST https://[service name].search.windows.net/indexes/hotels-sample-index/docs/index?api-version=2024-07-01 Content-Type: application/json api-key: [admin key] { "value": [ { "@search.action": "upload", "HotelId": "1111", "HotelName": "Secret Point Motel", "Description": "The hotel is ideally located on the main commercial artery of the city in the heart of New York. A few minutes away is Time's Square and the historic centre of the city, as well as other places of interest that make New York one of America's most attractive and cosmopolitan cities.", "Category": "Boutique", "Tags": [ "pool", "air conditioning", "concierge" ] }, { "@search.action": "mergeOrUpload", "HotelId": "2", "HotelName": "Twin Dome Motel", "Description": "This is description is replacing the original one for this hotel. New and changed values overwrite the previous ones. In a comma-delimited list like Tags, be sure to provide the full list because there is no merging of values within the field itself.", "Category": "Boutique", "Tags": [ "pool", "free wifi", "concierge", "my first new tag", "my second new tag" ] } ] }
@search.action
Задайте параметр дляupload
создания или перезаписи документа. Задайте для негоmerge
значение илиuploadOrMerge
если вы нацелены на обновления для определенных полей в документе. В предыдущем примере показаны оба действия.Действие Действие merge Обновляет документ, который уже существует, и не удается найти документ. Слияние заменяет существующие значения. По этой причине обязательно проверьте поля коллекции, содержащие несколько значений, таких как поля типа Collection(Edm.String)
. Например, еслиtags
поле начинается со значения["budget"]
и выполняется слияние с["economy", "pool"]
, конечное значениеtags
поля равно["economy", "pool"]
. Это не будет["budget", "economy", "pool"]
.mergeOrUpload Ведет себя как слияние, если документ существует, и отправляется, если документ является новым. Это наиболее распространенное действие для добавочных обновлений. отправить Аналогично "upsert", где документ вставляется, если он новый, и обновлен или заменен, если он существует. Если документ отсутствует значения, необходимые индексу, значение поля документа имеет значение NULL. Отправьте запрос.
Просмотрите только что добавленные документы в качестве шага проверки:
GET https://[service name].search.windows.net/indexes/hotel-sample-index/docs/1111?api-version=2024-07-01
Если ключ документа или идентификатор является новым, значение NULL становится значением для любого поля, которое не указано в документе. Для действий в существующем документе обновленные значения заменяют предыдущие значения. Все поля, которые не были указаны в "merge" или "mergeUpload", остаются нетронутыми в индексе поиска.
использование пакетов SDK Azure;
Программируемость предоставляется в следующих пакетах SDK Azure.
Пакет SDK Azure для .NET предоставляет следующие API для простых и массовых отправки документов в индекс:
Существует несколько примеров, иллюстрирующих индексирование в контексте простого и крупномасштабного индексирования:
"Загрузка индекса" объясняет основные шаги.
Примеры Azure.Search.Documents — индексирование документов из команды azure SDK добавляет SearchIndexingBufferedSender.
Руководство. Индексирование всех пар данных пакетной индексации с помощью стратегий тестирования для определения оптимального размера.
Обязательно проверьте репозиторий azure-search-vector-samples для примеров кода, показывающих, как индексировать поля векторов.