Включение кэширования для добавочного обогащения в поиске ИИ Azure

Внимание

Эта функция предоставляется в общедоступной предварительной версии в соответствии с дополнительными условиями использования. Предварительная версия REST API поддерживает эту функцию.

В этой статье объясняется, как добавить кэширование в конвейер обогащения, чтобы можно было изменять подчиненные шаги обогащения без необходимости перестраивать все время. По умолчанию набор навыков не имеет состояния, и изменение любой его части требует полного повторного запуска индексатора. С помощью кэша обогащения индексатор может определить, какие части дерева документов необходимо обновить на основе изменений, обнаруженных в определениях набора навыков или индексатора. Существующие обработанные выходные данные сохраняются и повторно используются везде, где это возможно.

Кэшированное содержимое помещается в хранилище Azure с помощью предоставленных сведений об учетной записи. Контейнер с именем ms-az-search-indexercache-<alpha-numerc-string> создается при запуске индексатора. Его следует рассматривать как внутренний компонент, управляемый службой поиска, и не следует изменять.

Необходимые компоненты

Вы должны быть знакомы с настройкой индексаторов. Начните с обзора индексатора, а затем перейдите к наборам навыков, чтобы узнать о конвейерах обогащения. Дополнительные сведения о ключевых понятиях см. в разделе Добавочное обогащение данных.

Внимание

Если вы используете индексатор SharePoint Online (предварительная версия), следует избежать добавочного обогащения. При определенных обстоятельствах кэш становится недействительным , требуя сброса и запуска индексатора, следует перезагрузить его.

Включение новых индексаторов

Для включения кэша обогащения на индексаторе требуются портал Azure, предварительные версии API или бета-версии пакетов SDK Azure.

  1. Слева выберите индексаторы и нажмите кнопку "Добавить индексатор".

  2. Укажите имя индексатора и существующий индекс, источник данных и набор навыков.

  3. Включите добавочное кэширование и задайте учетную запись служба хранилища Azure.

    Screenshot of the portal option for enrichment cache.

Включение существующих индексаторов

Для существующих индексаторов, у которых уже есть набор навыков, выполните следующие действия, чтобы добавить кэширование. В качестве одноразовой операции сброс и повторное выполнение индексатора в полном объеме для загрузки кэша.

Шаг 1. Получение определения индексатора

Начните с допустимого, рабочего индексатора с этими компонентами: источник данных, набор навыков, индекс. С помощью клиента API отправьте запрос индексатора GET для получения индексатора. При использовании предварительной версии API для индексатора GET свойство кэша, заданное значение null, добавляется в определение автоматически.

GET https://[YOUR-SEARCH-SERVICE].search.windows.net/indexers/[YOUR-INDEXER-NAME]?api-version=2021-04-30-Preview
    Content-Type: application/json
    api-key: [YOUR-ADMIN-KEY]

Шаг 2. Установка свойства кэша

В определении индекса измените "cache", чтобы включить следующие обязательные и необязательные свойства:

  • (обязательно) storageConnectionString необходимо задать значение служба хранилища Azure строка подключения.
  • (Необязательно) enableReprocessing логическое свойство (true по умолчанию) указывает, что добавочное обогащение включено. false Установите значение, если вы хотите приостановить добавочную обработку во время других операций с ресурсоемкими операциями, такими как индексирование новых документов, выполняется, а затем переключитесь на true более позднюю версию.
POST https://[service name].search.windows.net/indexers?api-version=2021-04-30-Preview
    {
        "name": "<YOUR-INDEXER-NAME>",
        "targetIndexName": "<YOUR-INDEX-NAME>",
        "dataSourceName": "<YOUR-DATASOURCE-NAME>",
        "skillsetName": "<YOUR-SKILLSET-NAME>",
        "cache" : {
            "storageConnectionString" : "<YOUR-STORAGE-ACCOUNT-CONNECTION-STRING>",
            "enableReprocessing": true
        },
        "fieldMappings" : [],
        "outputFieldMappings": [],
        "parameters": []
    }

Шаг 3. Сброс индексатора

Сброс индексатора требуется при настройке добавочного обогащения для существующих индексаторов, чтобы убедиться, что все документы находятся в согласованном состоянии. Для этой задачи можно использовать портал или клиент API.

POST https://[YOUR-SEARCH-SERVICE].search.windows.net/indexers/[YOUR-INDEXER-NAME]/reset?api-version=2021-04-30-Preview
    Content-Type: application/json
    api-key: [YOUR-ADMIN-KEY]

Шаг 4. Сохранение индексатора

Обновите индексатор (2021-04-30-Preview) с запросом PUT, где текст запроса включает кэш.

PUT https://[YOUR-SEARCH-SERVICE].search.windows.net/indexers/[YOUR-INDEXER-NAME]?api-version=2021-04-30-Preview
    Content-Type: application/json
    api-key: [YOUR-ADMIN-KEY]
    {
        "name" : "<YOUR-INDEXER-NAME>",
        ...
        "cache": {
            "storageConnectionString": "<YOUR-STORAGE-ACCOUNT-CONNECTION-STRING>",
            "enableReprocessing": true
        }
    }

Если вы выдаете другой запрос GET для индексатора, ответ от службы включает ID свойство в объект кэша. К имени контейнера, содержащего все кэшированные результаты и промежуточное состояние каждого документа, обрабатываемого этим индексатором, добавляется буквенно-цифровая строка. Идентификатор используется для уникального имени кэша в хранилище BLOB-объектов.

    "cache": {
        "ID": "<ALPHA-NUMERIC STRING>",
        "enableReprocessing": true,
        "storageConnectionString": "DefaultEndpointsProtocol=https;AccountName=<YOUR-STORAGE-ACCOUNT>;AccountKey=<YOUR-STORAGE-KEY>;EndpointSuffix=core.windows.net"
    }

Шаг 5. Запуск индексатора

Для запуска индексатора можно использовать портал или API. На портале в списке индексаторов выберите индексатор и нажмите кнопку "Выполнить". Одно из преимуществ использования портала — возможность наблюдения за состоянием индексатора, длительностью задания и количеством обрабатываемых документов. Страницы портала обновляются каждые несколько минут.

Кроме того, для запуска индексатора можно использовать REST.

POST https://[YOUR-SEARCH-SERVICE].search.windows.net/indexers/[YOUR-INDEXER-NAME]/run?api-version=2020-06-30-Preview
Content-Type: application/json
api-key: [YOUR-ADMIN-KEY]

Примечание.

Сброс и повторный запуск индексатора приводят к полной сборке, чтобы содержимое можно было кэшировать. Все неудачные когнитивные обогащения будут перезапущены во всех документах. Повторное использованием обогащенного содержимого из кэша начинается после загрузки кэша.

Проверка кэшированных выходных данных

Найдите кэш в служба хранилища Azure в контейнере BLOB-объектов. Контейнер имеет имя ms-az-search-indexercache-<some-alphanumeric-string>.

Кэш создается и используется индексатором. Его содержимое не доступно для чтения.

Чтобы проверить, работает ли кэш, измените набор навыков и запустите индексатор, а затем сравните метрики до и после выполнения для времени выполнения и подсчета документов.

Наборы навыков, включающие анализ изображений и оптическое распознавание символов (OCR) отсканированных документов, делают хорошие тестовые случаи. При изменении нижнего текстового навыка или любого навыка, не связанного с изображением, индексатор может получить все ранее обработанные изображения и содержимое OCR из кэша, обновляя и обрабатывая только изменения, связанные с текстом, указанные в изменениях. Вы можете ожидать, что меньше документов в счетчике документов выполнения индексатора, меньше времени выполнения и меньше расходов на счет.

Набор файлов , используемый в руководствах по cog-search-demo, является полезным тестовый случай, так как он содержит 14 файлов различных форматов JPG, PNG, HTML, DOCX, PPTX и других типов. Перейдите en на es другой язык в навыке перевода текста для проверки концепции добавочного обогащения.

Распространенные ошибки

Следующая ошибка возникает, если вы забыли указать версию API предварительной версии в запросе:

"The request is invalid. Details: indexer : A resource without a type name was found, but no expected type was specified. To allow entries without type information, the expected type must also be specified when the model is specified."

Ошибка неправильного запроса 400 также возникает, если отсутствует требование индексатора. Сообщение об ошибке указывает отсутствующие зависимости.

Следующие шаги

Добавочное обогащение применимо к индексаторам, содержащим наборы навыков, предоставляя повторное содержимое для индексов и хранилищ знаний. Ниже приведены дополнительные сведения о кэшировании и наборах навыков.