Индексирование данных из библиотек документов SharePoint

Внимание

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

Перед началом работы посетите раздел известных ограничений .

Чтобы использовать эту предварительную версию, заполните эту форму. Вы не будете получать уведомление об утверждении сразу после того, как любой запрос на доступ автоматически принимается после отправки. После включения доступа используйте REST API предварительной версии (2023-10-01-Preview или более поздней версии) для индексирования содержимого.

В этой статье объясняется, как настроить индексатор поиска для индексирования документов, хранящихся в библиотеках документов SharePoint, для полнотекстового поиска в службе "Поиск ИИ Azure". Шаги по настройке сначала следуют поведению и сценариям

Функция

Индексатор в поиске ИИ Azure — это обходчик, который извлекает данные, доступные для поиска, и метаданные из источника данных. Индексатор SharePoint Online подключается к сайту SharePoint и индексирует документы из одной или нескольких библиотек документов. Индексатор обеспечивает следующие возможности:

  • Индексируйте файлы и метаданные из одной или нескольких библиотек документов.
  • Индекс увеличивается, выбирая только новые и измененные файлы и метаданные.
  • Обнаружение удаления встроено. Удаление в библиотеке документов выполняется при следующем запуске индексатора, и документ удаляется из индекса.
  • Текст и нормализованные изображения извлекаются по умолчанию из документов, индексированных. При необходимости можно добавить набор навыков для более глубокого обогащения ИИ, например OCR или перевода текста.

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

Поддерживаемые форматы документов

Индексатор SharePoint Online может извлечь текст из следующих форматов документов:

Рекомендации и ограничения

Ниже приведены ограничения этой функции.

  • Индексирование списков SharePoint не поддерживается.

  • Индексирование SharePoint. Содержимое сайта ASPX не поддерживается.

  • Файлы записной книжки OneNote не поддерживаются.

  • Частная конечная точка не поддерживается.

  • Переименование папки SharePoint не запускает добавочное индексирование. Переименованная папка обрабатывается как новое содержимое.

  • SharePoint поддерживает детальную модель авторизации, которая определяет доступ на уровне документа на уровне пользователя. Индексатор не извлекает эти разрешения в индекс, а поиск ИИ Azure не поддерживает авторизацию на уровне документа. Если документ индексируется из SharePoint в службу поиска, содержимое доступно любому, у кого есть доступ на чтение к индексу. Если требуется разрешение на уровне документа, следует рассмотреть фильтры безопасности, чтобы обрезать результаты и автоматизировать копирование разрешений на уровне файла в поле в индексе.

  • Индексирование зашифрованных пользователем файлов, защищенных файлов Управления правами на доступ к данным (IRM), ZIP-файлов с паролями или аналогичным зашифрованным содержимым не поддерживается. Для обработки зашифрованного содержимого пользователь с соответствующими разрешениями для определенного файла должен удалить шифрование, чтобы элемент можно было индексировать соответствующим образом, когда индексатор запускает следующую запланированную итерацию.

Ниже приведены рекомендации по использованию этой функции:

  • Если вам требуется решение индексирования содержимого SharePoint в рабочей среде, рассмотрите возможность создания пользовательского соединителя с веб-перехватчиками SharePoint, вызывая API Microsoft Graph для экспорта данных в контейнер BLOB-объектов Azure, а затем используйте индексатор BLOB-объектов Azure для добавочного индексирования.
  • Если конфигурация SharePoint позволяет процессам Microsoft 365 обновлять метаданные файловой системы SharePoint, помните, что эти обновления могут активировать индексатор SharePoint Online, что приводит к приему документов в индексаторе несколько раз. Так как индексатор SharePoint Online является сторонним соединителем в Azure, индексатор не может считывать конфигурацию или изменять его поведение. Он реагирует на изменения в новом и измененном содержимом независимо от способа внесения этих обновлений. По этой причине убедитесь, что вы тестируете настройку и понимаете количество обработки документов перед использованием индексатора и любого обогащения ИИ.

Настройка индексатора SharePoint Online

Чтобы настроить индексатор SharePoint Online, используйте как портал Azure, так и REST API предварительной версии.

В этом разделе приведены действия. Вы также можете посмотреть следующее видео.

Шаг 1 (необязательно). Включение управляемого удостоверения, назначаемого системой

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

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

Снимок экрана: включение управляемого удостоверения, назначаемого системой.

После нажатия кнопки "Сохранить" вы получите идентификатор объекта, назначенный службе поиска.

Снимок экрана: идентификатор объекта.

Шаг 2. Определите разрешения, необходимые индексатору

Индексатор SharePoint Online поддерживает делегированные и разрешения приложения . Выберите разрешения, которые вы хотите использовать в зависимости от вашего сценария.

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

  • Разрешения приложения (рекомендуется), где индексатор выполняется под удостоверением клиента SharePoint с доступом ко всем сайтам и файлам. Индексатору требуется секрет клиента. Индексатор также потребует утверждения администратора клиента, прежде чем он сможет индексировать любое содержимое.

  • Делегированные разрешения, где индексатор выполняется под удостоверением пользователя или приложения, отправляющего запрос. Доступ к данным ограничен сайтами и файлами, к которым имеет доступ вызывающий объект. Для поддержки делегированных разрешений индексатору требуется запрос кода устройства для входа от имени пользователя. Делегированные пользователем разрешения применяют срок действия маркера каждые 75 минут на последние библиотеки безопасности, используемые для реализации этого типа проверки подлинности. Это не поведение, которое можно изменить. Для маркера с истекшим сроком действия требуется ручное индексирование с помощью индексатора Run (предварительная версия). По этой причине вместо этого могут потребоваться разрешения на основе приложений.

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

Шаг 3. Создание регистрации приложения Microsoft Entra

Индексатор SharePoint Online использует это приложение Microsoft Entra для проверки подлинности.

  1. Войдите на портал Azure.

  2. Найдите или перейдите к идентификатору Microsoft Entra, а затем выберите Регистрация приложений.

  3. Выберите +Создать регистрацию:

    1. Укажите имя приложения.
    2. Выберите Один клиент.
    3. Пропустите шаг обозначения URI. URI перенаправления не требуется.
    4. Выберите Зарегистрировать.
  4. Слева выберите разрешения API, а затем добавьте разрешение, а затем Microsoft Graph.

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

      • Приложение — Files.Read.All
      • Приложение — Sites.Read.All

      Снимок экрана: разрешения API приложения.

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

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

      • Delegated - Files.Read.All
      • Delegated - Sites.Read.All
      • Delegated - User.Read

      Снимок экрана: делегированные разрешения API.

      Делегированные разрешения позволяют клиенту поиска подключаться к SharePoint под удостоверением безопасности текущего пользователя.

  5. Предоставьте согласие администратора.

    При использовании разрешений API приложения требуется согласие администратора клиента. Некоторые клиенты блокируются таким образом, чтобы согласие администратора клиента также требовалось для делегированных разрешений API. Если одно из этих условий применяется, перед созданием индексатора необходимо предоставить согласие администратора клиента для этого приложения Microsoft Entra.

    Снимок экрана: согласие администратора приложения Microsoft Entra.

  6. Выберите вкладку Аутентификация.

  7. Установите для параметра "Разрешить общедоступные потоки клиентов" значение "Да ", а затем нажмите кнопку "Сохранить".

  8. Выберите + Добавить платформу, затем Мобильные приложения и приложения для компьютера, затем установите флажок https://login.microsoftonline.com/common/oauth2/nativeclient и выберите Настроить.

    Снимок экрана: конфигурация проверки подлинности приложения Microsoft Entra.

  9. (Только разрешения API приложений) Для проверки подлинности в приложении Microsoft Entra с помощью разрешений приложения индексатору требуется секрет клиента.

    • Выберите сертификаты и секреты в меню слева, а затем секреты клиента, а затем новый секрет клиента.

      Снимок экрана: новый секрет клиента.

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

      Снимок экрана: настройка секрета клиента.

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

      Снимок экрана: место копирования секрета клиента.

Шаг 4. Создание источника данных

Внимание

Начиная с этого раздела, используйте REST API предварительной версии для остальных шагов. Мы рекомендуем использовать последний api предварительной версии 2023-10-01-preview. Если вы не знакомы с REST API поиска ИИ Azure, рекомендуем ознакомиться с этим кратким руководством.

Источник данных указывает, какие данные следует индексировать, учетные данные и политики для эффективной идентификации изменений данных (новые, измененные или удаленные строки). Источник данных могут использовать несколько индексаторов в одной службе поиска.

Чтобы индексировать SharePoint, источник данных должен иметь следующие свойства:

  • Свойство name — уникальное имя источника данных в службе поиска.
  • type — "sharepoint". Это значение учитывает регистр.
  • учетные данные предоставляют конечную точку SharePoint и идентификатор приложения Microsoft Entra (клиента). Пример конечной точки SharePoint.https://microsoft.sharepoint.com/teams/MySharePointSite Конечную точку можно получить, перейдя на домашнюю страницу сайта SharePoint и скопировав URL-адрес из браузера.
  • container указывает, какую библиотеку документов индексировать. Элемент управления свойствами , которые индексируются документами.

Чтобы создать источник данных, вызовите создание источника данных (предварительная версия).

POST https://[service name].search.windows.net/datasources?api-version=2023-10-01-Preview
Content-Type: application/json
api-key: [admin key]

{
    "name" : "sharepoint-datasource",
    "type" : "sharepoint",
    "credentials" : { "connectionString" : "[connection-string]" },
    "container" : { "name" : "defaultSiteLibrary", "query" : null }
}

Формат строки подключения

Формат строка подключения изменяется на основе того, использует ли индексатор делегированные разрешения API или разрешения API приложения

  • Делегированные разрешения API строка подключения формате

    SharePointOnlineEndpoint=[SharePoint site url];ApplicationId=[Azure AD App ID];TenantId=[SharePoint site tenant id]

  • Разрешения API приложения строка подключения формате

    SharePointOnlineEndpoint=[SharePoint site url];ApplicationId=[Azure AD App ID];ApplicationSecret=[Azure AD App client secret];TenantId=[SharePoint site tenant id]

Примечание.

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

Шаг 5. Создание индекса

Индекс задает поля в документе, атрибуты, и другие компоненты, которые определяют процедуру поиска.

Чтобы создать индекс, вызовите create Index (preview):

POST https://[service name].search.windows.net/indexes?api-version=2023-10-01-Preview
Content-Type: application/json
api-key: [admin key]

{
    "name" : "sharepoint-index",
    "fields": [
        { "name": "id", "type": "Edm.String", "key": true, "searchable": false },
        { "name": "metadata_spo_item_name", "type": "Edm.String", "key": false, "searchable": true, "filterable": false, "sortable": false, "facetable": false },
        { "name": "metadata_spo_item_path", "type": "Edm.String", "key": false, "searchable": false, "filterable": false, "sortable": false, "facetable": false },
        { "name": "metadata_spo_item_content_type", "type": "Edm.String", "key": false, "searchable": false, "filterable": true, "sortable": false, "facetable": true },
        { "name": "metadata_spo_item_last_modified", "type": "Edm.DateTimeOffset", "key": false, "searchable": false, "filterable": false, "sortable": true, "facetable": false },
        { "name": "metadata_spo_item_size", "type": "Edm.Int64", "key": false, "searchable": false, "filterable": false, "sortable": false, "facetable": false },
        { "name": "content", "type": "Edm.String", "searchable": true, "filterable": false, "sortable": false, "facetable": false }
    ]
}

Внимание

Можно использовать только metadata_spo_site_library_item_id в качестве ключевого поля в индексе, заполненном индексатором SharePoint Online. Если поле ключа не существует в источнике данных, metadata_spo_site_library_item_id автоматически сопоставляется с полем ключа.

Шаг 6. Создание индексатора

Индексатор соединяет источник данных с целевым индексом поиска и предоставляет расписание для автоматизации обновления данных. После создания индекса и источника данных можно создать индексатор.

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

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

  1. Отправьте запрос создания индексатора (предварительная версия):

    POST https://[service name].search.windows.net/indexers?api-version=2023-10-01-Preview
    Content-Type: application/json
    api-key: [admin key]
    
    {
        "name" : "sharepoint-indexer",
        "dataSourceName" : "sharepoint-datasource",
        "targetIndexName" : "sharepoint-index",
        "parameters": {
        "batchSize": null,
        "maxFailedItems": null,
        "maxFailedItemsPerBatch": null,
        "base64EncodeKeys": null,
        "configuration": {
            "indexedFileNameExtensions" : ".pdf, .docx",
            "excludedFileNameExtensions" : ".png, .jpg",
            "dataToExtract": "contentAndMetadata"
          }
        },
        "schedule" : { },
        "fieldMappings" : [
            { 
              "sourceFieldName" : "metadata_spo_site_library_item_id", 
              "targetFieldName" : "id", 
              "mappingFunction" : { 
                "name" : "base64Encode" 
              } 
             }
        ]
    }
    
  2. При создании индексатора в первый раз запрос создания индексатора (предварительная версия) ожидает завершения следующего шага. Чтобы получить ссылку и ввести новый код устройства, необходимо вызвать состояние индексатора .

    GET https://[service name].search.windows.net/indexers/sharepoint-indexer/status?api-version=2023-10-01-Preview
    Content-Type: application/json
    api-key: [admin key]
    

    Если вы не запускаете состояние индексатора в течение 10 минут, срок действия кода истекает, и вам потребуется повторно создать источник данных.

  3. Скопируйте код входа устройства из ответа "Состояние индексатора ". Имя входа устройства можно найти в файле errorMessage.

    {
        "lastResult": {
            "status": "transientFailure",
            "errorMessage": "To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code <CODE> to authenticate."
        }
    }
    
  4. Укажите код, включенный в сообщение об ошибке.

    Снимок экрана: ввод кода устройства.

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

    По возможности рекомендуется создать новую учетную запись пользователя организации и дать новому пользователю разрешения, которые должен иметь индексатор.

  6. Утвердите запрошенные разрешения.

    Снимок экрана: утверждение разрешений API.

  7. Начальный запрос создания индексатора (предварительная версия) завершается, если все указанные выше разрешения верны и в течение 10 минут.

Примечание.

Если приложению Microsoft Entra требуется утверждение администратора и его не было утверждено перед входом, вы можете увидеть следующий экран. для продолжения требуется утверждение Администратор. Снимок экрана: обязательное утверждение администратора.

Шаг 7. Проверка состояния индексатора

После создания индексатора можно вызвать состояние индексатора:

GET https://[service name].search.windows.net/indexers/sharepoint-indexer/status?api-version=2023-10-01-Preview
Content-Type: application/json
api-key: [admin key]

Обновление источника данных

Если нет обновлений для объекта источника данных, индексатор выполняется по расписанию без взаимодействия с пользователем.

Однако при изменении объекта источника данных во время истечения срока действия кода устройства необходимо выполнить вход еще раз, чтобы индексатор выполнялся. Например, если изменить запрос источника данных, войдите повторно с помощью https://microsoft.com/devicelogin и получите новый код устройства.

Ниже приведены шаги по обновлению источника данных, если истек срок действия кода устройства:

  1. Вызовите индексатор запуска (предварительная версия), чтобы вручную запустить выполнение индексатора.

    POST https://[service name].search.windows.net/indexers/sharepoint-indexer/run?api-version=2023-10-01-Preview  
    Content-Type: application/json
    api-key: [admin key]
    
  2. Проверьте состояние индексатора.

    GET https://[service name].search.windows.net/indexers/sharepoint-indexer/status?api-version=2023-10-01-Preview
    Content-Type: application/json
    api-key: [admin key]
    
  3. Если вы получите сообщение об ошибке с просьбой посетить https://microsoft.com/devicelogin, откройте страницу и скопируйте новый код.

  4. Вставьте код в диалоговое окно.

  5. Вручную запустите индексатор еще раз и проверка состояние индексатора. На этот раз индексатор должен успешно запуститься.

Индексирование метаданных документа

Если вы индексируют метаданные документа ("dataToExtract": "contentAndMetadata"), следующие метаданные будут доступны для индексирования.

Идентификатор Тип Описание
metadata_spo_site_library_item_id Edm.String Сочетание ключа идентификатора сайта, идентификатора библиотеки и идентификатора элемента, который однозначно идентифицирует элемент в библиотеке документов для сайта.
metadata_spo_site_id Edm.String Идентификатор сайта SharePoint.
metadata_spo_library_id Edm.String Идентификатор библиотеки документов.
metadata_spo_item_id Edm.String Идентификатор элемента (документа) в библиотеке.
metadata_spo_item_last_modified Edm.DateTimeOffset Дата и время последнего изменения элемента (в формате UTC).
metadata_spo_item_name Edm.String Наименование номенклатуры.
metadata_spo_item_size Edm.Int64 Размер элемента в байтах.
metadata_spo_item_content_type Edm.String Тип содержимого элемента.
metadata_spo_item_extension Edm.String Расширение элемента.
metadata_spo_item_weburi Edm.String URI элемента.
metadata_spo_item_path Edm.String Сочетание родительского пути и имени элемента.

Индексатор SharePoint Online также поддерживает метаданные, относящиеся к каждому типу документа. Дополнительные сведения можно найти в свойствах метаданных контента, используемых в службе "Поиск ИИ Azure".

Примечание.

Чтобы индексировать пользовательские метаданные, необходимо указать "additionalColumns" в параметре запроса источника данных.

Включение или исключение по типу файла

Вы можете управлять индексированием файлов, задав критерии включения и исключения в разделе "параметры" определения индексатора.

Включите определенные расширения файлов, задав "indexedFileNameExtensions" разделяемый запятыми список расширений файлов (с главной точкой). Исключите определенные расширения файлов, задав "excludedFileNameExtensions" для расширений, которые следует пропустить. Если одно и то же расширение находится в обоих списках, он исключен из индексирования.

PUT /indexers/[indexer name]?api-version=2020-06-30
{
    "parameters" : { 
        "configuration" : { 
            "indexedFileNameExtensions" : ".pdf, .docx",
            "excludedFileNameExtensions" : ".png, .jpeg" 
        } 
    }
}

Управление индексацией документов

Один индексатор SharePoint Online может индексировать содержимое из одной или нескольких библиотек документов. Используйте параметр container в определении источника данных, чтобы указать, какие сайты и библиотеки документов следует индексировать.

Раздел источника данных "контейнер" имеет два свойства для этой задачи: "имя" и "запрос".

Имя.

Свойство name является обязательным и должно быть одним из трех значений:

значение Описание
defaultSiteLibrary Индексируйте все содержимое из библиотеки документов по умолчанию сайта.
allSiteLibraries Индексируйте все содержимое из всех библиотек документов на сайте. Библиотеки документов из дочернего сайта не область/ Если требуется содержимое из дочерних сайтов, выберите "useQuery" и укажите "includeLibrariesInSite".
useQuery Индексировать только содержимое, определенное в запросе.

Query

Параметр "query" источника данных состоит из пар ключевое слово/value. Ниже приведены ключевые слова, которые можно использовать. Значения — URL-адреса сайта или URL-адреса библиотеки документов.

Примечание.

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

Ключевое слово Описание и примеры значений
null Если значение равно null или пусто, индексируется либо библиотека документов по умолчанию, либо все библиотеки документов в зависимости от имени контейнера.

Пример:

"container" : { "name" : "defaultSiteLibrary", "query" : null }
includeLibrariesInSite Индексирование содержимого из всех библиотек под указанным сайтом в строка подключения. Область включает в себя все дочерние сайты вашего сайта. Значение должно быть URI сайта или дочернего сайта.

Пример:

"container" : { "name" : "useQuery", "query" : "includeLibrariesInSite=https://mycompany.sharepoint.com/mysite" }
includeLibrary Индексировать все содержимое из этой библиотеки. Это полный путь к библиотеке, которую можно скопировать из браузера:

Пример 1 (полный путь):

"container" : { "name" : "useQuery", "query" : "includeLibrary=https://mycompany.sharepoint.com/mysite/MyDocumentLibrary" }

Пример 2 (URI, скопированный из браузера):

"container" : { "name" : "useQuery", "query" : "includeLibrary=https://mycompany.sharepoint.com/teams/mysite/MyDocumentLibrary/Forms/AllItems.aspx" }
excludeLibrary Не индексировать содержимое из этой библиотеки. Это полный путь к библиотеке, которую можно скопировать из браузера:

Пример 1 (полный путь):

"container" : { "name" : "useQuery", "query" : "includeLibrariesInSite=https://mysite.sharepoint.com/subsite1; excludeLibrary=https://mysite.sharepoint.com/subsite1/MyDocumentLibrary" }

Пример 2 (URI, скопированный из браузера):

"container" : { "name" : "useQuery", "query" : "includeLibrariesInSite=https://mycompany.sharepoint.com/teams/mysite; excludeLibrary=https://mycompany.sharepoint.com/teams/mysite/MyDocumentLibrary/Forms/AllItems.aspx" }
additionalColumns Индексировать столбцы из библиотеки документов. Это значение представляет собой разделенный запятыми список имен столбцов, которые требуется индексировать. Используйте двойную обратную косую черту для обхода запятых и запятых в именах столбцов:

Пример 1 (additionalColumns=MyCustomColumn,MyCustomColumn2):

"container" : { "name" : "useQuery", "query" : "includeLibrary=https://mycompany.sharepoint.com/mysite/MyDocumentLibrary;additionalColumns=MyCustomColumn,MyCustomColumn2" }

Пример 2 (escape-символы с двойной обратной косой чертой):

"container" : { "name" : "useQuery", "query" : "includeLibrary=https://mycompany.sharepoint.com/teams/mysite/MyDocumentLibrary/Forms/AllItems.aspx;additionalColumns=MyCustomColumnWith\\,,MyCustomColumnWith\\;" }

Обработка ошибок

По умолчанию индексатор SharePoint Online останавливается, как только обнаружит документ с неподдерживаемым типом содержимого (например, изображение). Параметр можно использовать excludedFileNameExtensions для пропуска определенных типов контента. Однако вам может потребоваться индексировать документы, не зная все возможные типы контента заранее. Чтобы продолжить индексирование при обнаружении неподдерживаемого типа содержимого, задайте для параметра конфигурации failOnUnsupportedContentType значение "false":

PUT https://[service name].search.windows.net/indexers/[indexer name]?api-version=2023-10-01-Preview
Content-Type: application/json
api-key: [admin key]

{
    ... other parts of indexer definition
    "parameters" : { "configuration" : { "failOnUnsupportedContentType" : false } }
}

Для некоторых документов поиск Azure AI не может определить тип контента или не может обработать документ другого поддерживаемого типа контента. Чтобы пропустить этот сбой, задайте для failOnUnprocessableDocument параметра конфигурации значение False:

"parameters" : { "configuration" : { "failOnUnprocessableDocument" : false } }

Поиск по искусственному интеллекту Azure ограничивает размер индексированных документов. Эти ограничения описаны в ограничениях службы в поиске ИИ Azure. Документы слишком большого размера по умолчанию считаются ошибками. Но вы все равно можете индексировать метаданные хранилища документов слишком большого размера, если для параметра конфигурации indexStorageMetadataOnlyForOversizedDocuments задать значение "true":

"parameters" : { "configuration" : { "indexStorageMetadataOnlyForOversizedDocuments" : true } }

Вы также можете продолжить индексирование, если ошибки возникают в какой-либо момент обработки — при анализе документов или при добавлении документов в индекс. Чтобы пропустить определенное количество ошибок, задайте для параметров конфигурации maxFailedItems и maxFailedItemsPerBatch нужные значения. Например:

{
    ... other parts of indexer definition
    "parameters" : { "maxFailedItems" : 10, "maxFailedItemsPerBatch" : 10 }
}

Если файл на сайте SharePoint включен, может возникнуть сообщение об ошибке, аналогичное следующему:

Code: resourceModified Message: The resource has changed since the caller last read it; usually an eTag mismatch Inner error: Code: irmEncryptFailedToFindProtector

Сообщение об ошибке также будет содержать идентификатор сайта SharePoint, идентификатор диска и идентификатор элемента диска в следующем шаблоне: <sharepoint site id> :: <drive id> :: <drive item id> Эти сведения можно использовать для определения того, какой элемент завершается сбоем в конце SharePoint. Затем пользователь может удалить шифрование из элемента, чтобы устранить проблему.

См. также