Устранение распространенных ошибок и предупреждений индексатора в поиске ИИ Azure

Примечание

Поиск с использованием ИИ Azure доступна через портал Azure, REST API и Azure SDKs. Он также лежит в основе Foundry IQ — управляемого слоя знаний, который преобразует корпоративный контент в многократно используемые базы знаний с учетом разрешений доступа для агентов на портале Microsoft Foundry.

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

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

Примечание

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

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

Где можно найти определенные ошибки индексатора?

Чтобы проверить состояние индексатора и определить ошибки:

  1. Перейдите в службу поиска на портале Azure.

  2. Слева разверните Управление Поиском>Индексаторы и выберите индексатор.

  3. В разделе "Журнал выполнения" выберите состояние. Все статусы, включая «Success», содержат сведения о выполнении.

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

Временные ошибки

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

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

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

Свойства ошибки

Свойство Описание Пример
Ключ Идентификатор документа, затронутого ошибкой или предупреждением. Пример службы хранилища Azure, где идентификатор по умолчанию — путь к хранилищу метаданных: https://<storageaccount>.blob.core.windows.net/jfk-1k/docid-32112954.pdf
Имя Операция, вызывающая ошибку или предупреждение. Это создается следующей структурой: [category].[subcategory].[resourceType].[resourceName] DocumentExtraction.azureblob.myBlobContainerName Enrichment.WebApiSkill.mySkillName Projection.SearchIndex.OutputFieldMapping.myOutputFieldName Projection.SearchIndex.MergeOrUpload.myIndexName Projection.KnowledgeStore.Table.myTableName
Сообщение Высокоуровневое описание ошибки или предупреждения. Could not execute skill because the Web Api request failed.
Детали Конкретные сведения, которые могут быть полезны при диагностике проблемы, например, ответ WebApi, если выполнение пользовательского навыка завершилось сбоем. link-cryptonyms-list - Error processing the request record : System.ArgumentNullException: Value cannot be null. Parameter name: source at System.Linq.Enumerable.All[TSource](IEnumerable 1 source, Func 2 predicate) at Microsoft.CognitiveSearch.WebApiSkills.JfkWebApiSkills. ...rest of stack trace...
СсылкаНаДокументацию Ссылка на соответствующую документацию с подробными сведениями для отладки и устранения проблемы. Эта ссылка часто указывает на один из приведенных ниже разделов на этой странице. https://go.microsoft.com/fwlink/?linkid=2106475

Error: Could not read document

Индексатор не смог прочитать документ из источника данных. Это может произойти из-за следующего:

Причина Сведения и пример Разрешение
Несогласованные типы полей в разных документах Type of value has a mismatch with column type. Couldn't store '{47.6,-122.1}' in authors column. Expected type is JArray. Error converting data type nvarchar to float. Conversion failed when converting the nvarchar value '12 months' to data type int. Arithmetic overflow error converting expression to data type int. Убедитесь, что тип каждого поля совпадает с различными документами. Например, если первое поле документа 'startTime' является dateTime, а во втором документе это строка, эта ошибка возникает.
Ошибки из базовой службы источника данных Из Azure Cosmos DB: {"Errors":["Request rate is large"]} Проверьте экземпляр хранилища, чтобы убедиться, что он работоспособен. Возможно, вам потребуется настроить масштабирование или секционирование.
Временные проблемы A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 0 - An existing connection was forcibly closed by the remote host Иногда возникают непредвиденные проблемы с подключением. Попробуйте выполнить документ с помощью индексатора позже.

Error: Could not extract content or metadata from your document

Индексатор на основе источника данных BLOB-объектов не смог извлечь содержимое или метаданные из документа (например, PDF-файл). Это может произойти из-за следующего:

Причина Сведения и пример Разрешение
Объект BLOB превышает допустимый размер Document is '150441598' bytes, which exceeds the maximum size '134217728' bytes for document extraction for your current service tier. Ошибки индексирования BLOB-объектов
Blob имеет неподдерживаемый тип содержимого Document has unsupported content type 'image/png' Ошибки индексирования BLOB-объектов
Блоб зашифрован Document could not be processed - it may be encrypted or password protected. Вы можете пропустить BLOB с настройками BLOB.
Временные проблемы Error processing blob: The request was aborted: The request was canceled. Document timed out during processing. Иногда возникают непредвиденные проблемы с подключением. Попробуйте выполнить документ с помощью индексатора позже.

Error: Could not parse document

Индексатор считывает документ из источника данных, но возникла проблема с преобразованием содержимого документа в указанную схему сопоставления полей. Это может произойти из-за следующего:

Причина Сведения и пример Разрешение
Отсутствует ключ документа Document key cannot be missing or empty Убедитесь, что все документы имеют допустимые ключи документов. Ключ документа определяется путем задания свойства key в рамках определения индекса. Индексаторы выдают эту ошибку, если свойство, помеченное как "ключ", не удается найти в определенном документе.
Недопустимый ключ документа Invalid document key. Keys can only contain letters, digits, underscore (_), dash (-), or equal sign (=). Убедитесь, что все документы имеют допустимые ключи документов. Дополнительные сведения можно найти в разделе Индексирование хранилища BLOB-объектов. Если вы используете индексатор BLOB-объектов и ваше поле ключа документа обозначено как metadata_storage_path, убедитесь, что у определения индексатора есть функция отображения base64Encode, где равно parameters, вместо использования пути в обычном текстовом формате.
Недопустимый ключ документа Document key cannot be longer than 1024 characters Измените ключ документа в соответствии с требованиями проверки.
Не удалось применить сопоставление полей к полю Could not apply mapping function 'functionName' to field 'fieldName'. Array cannot be null. Parameter name: bytes Дважды проверьте сопоставления полей , определенные в индексаторе, и сравните данные указанного поля неудачного документа. Может потребоваться изменить сопоставления полей или данные документа.
Не удалось прочитать значение поля Could not read the value of column 'fieldName' at index 'fieldIndex'. A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 0 - An existing connection was forcibly closed by the remote host.) Эти ошибки обычно возникают из-за непредвиденных проблем с подключением к базовой службе источника данных. Попробуйте выполнить документ с помощью индексатора позже.

Error: Could not map output field 'xyz' to search index due to deserialization problem while applying mapping function 'abc'

Сопоставление выходных данных может завершиться ошибкой, так как выходные данные имеют неправильный формат для используемой функции сопоставления. Например, применение Base64Encode функции сопоставления к двоичным данным приведет к возникновению этой ошибки. Чтобы устранить проблему, повторно выполните индексатор без указания функции сопоставления или убедитесь, что функция сопоставления совместима с типом данных выходного поля. Дополнительные сведения см. в разделе "Сопоставление полей вывода ".

Error: Could not execute skill

Индексатор не смог запустить навык в наборе навыков.

Причина Сведения и пример Разрешение
Временные проблемы с подключением Произошла временная ошибка. Повторите попытку позже. Иногда возникают непредвиденные проблемы с подключением. Попробуйте выполнить документ с помощью индексатора позже.
Потенциальная ошибка продукта Произошла непредвиденная ошибка. Это означает неизвестный класс сбоя и может указывать на ошибку продукта. Отправьте запрос в службу поддержки , чтобы получить справку.
В навыке произошла ошибка в процессе выполнения (Из навыка слияния) Одно или несколько значений смещения являлись недопустимыми, и их не удалось разобрать. Элементы были вставлены в конце текста Чтобы устранить проблему, используйте сведения в сообщении об ошибке. Для устранения такого рода сбоя требуется действие.

Error: Could not execute skill because the Web API request failed

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

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

Error: Could not execute skill because Web API skill response is invalid

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

Error: Type of value has a mismatch with column type. Couldn't store in 'xyz' column. Expected type is 'abc'

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

Error: Skill did not execute within the time limit

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

Интегрированные навыки Foundry Tools

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

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

Пользовательские навыки

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

  {
        "@odata.type": "#Microsoft.Skills.Custom.WebApiSkill",
        "uri": "<your custom skill uri>",
        "batchSize": 1,
        "timeout": "PT90S",
        "context": "/document",
        "inputs": [
          {
            "name": "input",
            "source": "/document/content"
          }
        ],
        "outputs": [
          {
            "name": "output",
            "targetName": "output"
          }
        ]
      }

Максимальное значение, которое можно задать для timeout параметра, составляет 230 секунд. Если ваш пользовательский навык не может последовательно выполняться в течение 230 секунд, можно рассмотреть возможность уменьшения batchSize вашего пользовательского навыка, чтобы сократить количество документов, обрабатываемых за одно выполнение. Если у вас уже установлено значение batchSize на 1, вам нужно переписать навык, чтобы он мог выполняться менее чем за 230 секунд, или разделить его на несколько пользовательских навыков таким образом, чтобы время выполнения любого из них не превышало 230 секунд. Ознакомьтесь с документацией по настройке навыков для получения дополнительной информации.

Error: Could not 'MergeOrUpload' | 'Delete' document to the search index

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

Причина Сведения и пример Разрешение
Поле содержит значение, которое слишком велико Термин в документе превышает ограничение в 32 КБ Это ограничение можно избежать, убедив, что поле не настроено как фильтруемое, фасетное или сортируемое.
Документ слишком велик для индексирования Документ больше максимального размера запроса API Индексирование больших наборов данных
Документ содержит слишком много объектов в коллекции Коллекция в документе превышает максимальное количество элементов во всех сложных коллекциях. The document with key '1000052' has '4303' objects in collections (JSON arrays). At most '3000' objects are allowed to be in collections across the entire document. Remove objects from collections and try indexing the document again. Мы рекомендуем уменьшить размер сложной коллекции в документе до меньшего предела и избежать высокой загрузки хранилища.
Проблемы с подключением к целевому индексу (который сохраняется после повторных попыток), так как служба находится под другой нагрузкой, например запросы или индексирование. Не удалось установить подключение к обновлению индекса. Служба поиска находится под тяжелой нагрузкой. Увеличение масштаба службы поиска
Служба поиска проходит процесс патчирования для обновления системы или находится в процессе перенастройки топологии. Не удалось установить подключение к обновлению индекса. Служба поиска в настоящее время отключена или служба поиска проходит переход. Настройте службу с не менее чем тремя репликами для достижения 99,9% доступности согласно документации SLA
Сбой в базовом ресурсе вычислений или сети (редко) Не удалось установить подключение к обновлению индекса. Произошла неизвестная ошибка. Настройте индексаторы для запуска по расписанию, чтобы восстановить работу после сбоя.
Запрос индексирования в индекс назначения не был подтвержден в течение времени ожидания из-за проблем с сетью. Не удалось своевременно установить подключение к индексу поиска. Настройте индексаторы для запуска по расписанию, чтобы восстановить работу после сбоя. Кроме того, попробуйте уменьшить размер пакета индексатора, если это условие ошибки сохраняется.

Error: Could not index document because some of the document's data was not valid

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

Причина Сведения и пример
Тип данных одного или нескольких полей, извлеченных индексатором, несовместим с моделью данных соответствующего целевого поля индекса. The data field '_data_' in the document with key '888' has an invalid value 'of type 'Edm.String''. The expected type was 'Collection(Edm.String)'.
Не удалось извлечь любую сущность JSON из строкового значения. Could not parse value 'of type 'Edm.String'' of field '_data_' as a JSON object. Error:'After parsing a value an unexpected character was encountered: ''. Path '_path_', line 1, position 3162.'
Не удалось извлечь коллекцию сущностей JSON из строкового значения. Could not parse value 'of type 'Edm.String'' of field '_data_' as a JSON array. Error:'After parsing a value an unexpected character was encountered: ''. Path '[0]', line 1, position 27.'
Неизвестный тип обнаружен в исходном документе. Unknown type '_unknown_' cannot be indexed
Несовместимая нотация для географических точек использовалась в исходном документе. WKT POINT string literals are not supported. Use GeoJson point literals instead

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

Error: Integrated change tracking policy cannot be used because table has a composite primary key

Это относится к таблицам SQL и обычно происходит, когда ключ определяется как составной ключ или, когда таблица определила уникальный кластеризованный индекс (как в индексе SQL, а не в индексе поиска Azure). Основной причиной является изменение ключевого атрибута в качестве составного первичного ключа в уникальном кластеризованном индексе. В этом случае убедитесь, что в таблице SQL нет уникального кластеризованного индекса или вы сопоставляете ключевое поле с полем, которое гарантированно не имеет повторяющихся значений.

Error: Could not process document within indexer max run time

Эта ошибка возникает, когда индексатор не может завершить обработку одного документа из источника данных в течение допустимого времени выполнения. Максимальное время выполнения меньше, если используются наборы навыков. При возникновении этой ошибки, если для maxFailedItems задано значение, отличное от 0, индексатор пропускает этот документ в последующих запусках, чтобы процесс индексирования мог продолжаться. Если вы не можете позволить пропустить какой-либо документ или если вы постоянно видите эту ошибку, рассмотрите возможность разделения документов на более мелкие части, чтобы частичный прогресс можно было сделать в рамках одного запуска индексатора.

Error: Could not project document

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

Причина Сведения и пример Разрешение
Не удалось обновить проекцию большого двоичного объекта 'blobUri' в контейнере 'containerName' Указанный контейнер не существует. Индексатор проверяет, был ли ранее создан указанный контейнер и при необходимости создаст его, но проверка выполняется только один раз за каждое выполнение индексатора. Эта ошибка означает, что после этого шага контейнер удален. Чтобы устранить эту ошибку, попробуйте не изменять сведения об учетной записи хранилища, дождитесь завершения индексатора, а затем повторно запустите его.
Не удалось обновить проекцию большого двоичного объекта 'blobUri' в контейнере 'containerName' Не удалось записать данные в транспортное подключение: существующее соединение было принудительно закрыто удаленным узлом. Ожидается, что это временный сбой в службе хранилища Azure, поэтому его следует устранить, повторно выполнив индексатор. Если эта ошибка возникает согласованно, отправьте запрос в службу поддержки , чтобы его можно было изучить дальше.
Не удалось обновить строку 'projectionRow' в таблице 'tableName' Сервер занят. Ожидается, что это временный сбой в службе хранилища Azure, поэтому его следует устранить, повторно выполнив индексатор. Если эта ошибка возникает согласованно, отправьте запрос в службу поддержки , чтобы его можно было изучить дальше.

Error: The cognitive service for skill '<skill-name>' has been throttled

Ошибка выполнения навыка из-за ограничения вызова средств Foundry. Как правило, этот класс сбоев возникает, когда слишком много навыков выполняются параллельно. Если вы используете клиентскую библиотеку Microsoft.Search.Documents для запуска индексатора, можно использовать searchIndexingBufferedSender , чтобы получить автоматическую повторную попытку на неудачных шагах. В противном случае можно переинициализировать и повторно запустить индексатор.

Error: Expected IndexAction metadata

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

Warning: Skill input was invalid

Отсутствовал входной параметр для навыка, он имел неверный тип либо был недопустим. Может появиться следующая информация:

  • Could not execute skill

  • Skill executed but may have unexpected results

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

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

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

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

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

{
    "@odata.type": "#Microsoft.Skills.Util.ConditionalSkill",
    "context": "/document",
    "inputs": [
        { "name": "condition", "source": "= $(/document/language) == null" },
        { "name": "whenTrue", "source": "= 'en'" },
        { "name": "whenFalse", "source": "= $(/document/language)" }
    ],
    "outputs": [ { "name": "output", "targetName": "languageWithDefault" } ]
}
Причина Сведения и пример Разрешение
Неправильный тип ввода навыка "Входные данные, необходимые для навыка, не соответствуют ожидаемому типу String." Имя: text, источник: /document/merged_content. Требуемый ввод навыка не соответствовал ожидаемому формату. Имя: text, источник: /document/merged_content." "Не удается выполнить итерацию по не массиву /document/normalized_images/0/imageCelebrities/0/detail/celebrities." "Не удается выбрать 0 в не массиве /document/normalized_images/0/imageCelebrities/0/detail/celebrities." Некоторые навыки ожидают входных данных определенных типов, например навык тональности ожидает, что text является строкой. Если входные данные указывают нестроковое значение, навык не выполняется и не создает выходных данных. Убедитесь, чтобы набор данных имел входные значения одного типа, или используйте пользовательский навык Web API для предварительной обработки входных данных. Если вы выполняете итерацию навыка по массиву, проверьте контекст навыка и входные * данные в правильных позициях. Обычно контекст и источник входных данных должны заканчиваться * массивами.
Отсутствуют входные данные навыка Required skill input is missing. Name: text, Source: /document/merged_content Missing value /document/normalized_images/0/imageTags. Unable to select 0 in array /document/pages of length 0. Если это предупреждение возникает для всех документов, в путях ввода может быть опечатка. Проверьте регистр имени свойства. Проверьте наличие дополнительных или отсутствующих * в пути. Убедитесь, что документы из источника данных предоставляют необходимые входные данные.
Недопустимый ввод кода языка навыка Входные данные languageCode навыка имеют следующие языковые коды X,Y,Z, по крайней мере один из которых является некорректным. Дополнительные сведения см. ниже.

Warning: Skill input 'languageCode' has the following language codes 'X,Y,Z', at least one of which is invalid.

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

Обратите внимание, что вы также можете получить предупреждение, аналогичное этому, если недопустимый countryHint вход передается в LanguageDetectionSkill. Если это произойдет, убедитесь, что поле, которое вы используете из источника данных для ввода, содержит допустимые двухбуквенные коды стран ISO 3166-1 ALPHA-2. Если некоторые из них допустимы, а некоторые — нет, следуйте приведённым ниже рекомендациям, но замените languageCode на countryHint и defaultLanguageCode на defaultCountryHint, чтобы соответствовало вашему варианту использования.

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

Если вы знаете, что набор данных содержит несколько языков, и вам нужны ОпределениеЯзыкаSkill и входные данные, попробуйте добавить languageCode для фильтрации текста с языками, которые не поддерживаются, перед передачей текста в следующий навык. Ниже приведен пример того, как это может выглядеть для EntityRecognitionSkill:

{
    "@odata.type": "#Microsoft.Skills.Util.ConditionalSkill",
    "context": "/document",
    "inputs": [
        { "name": "condition", "source": "= $(/document/language) == 'de' || $(/document/language) == 'en' || $(/document/language) == 'es' || $(/document/language) == 'fr' || $(/document/language) == 'it'" },
        { "name": "whenTrue", "source": "/document/content" },
        { "name": "whenFalse", "source": "= null" }
    ],
    "outputs": [ { "name": "output", "targetName": "supportedByEntityRecognitionSkill" } ]
}

Ниже приведены некоторые ссылки на поддерживаемые языки для каждого из навыков, которые могут создать это сообщение об ошибке:

Warning: Skill input was truncated

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

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

 {
    "@odata.type": "#Microsoft.Skills.Text.LanguageDetectionSkill",
    "inputs": [
      {
        "name": "text",
        "source": "/document/text"
      }
    ],
    "outputs": [...]
  }

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

Warning: Web API skill response contains warnings

Индексатор выполнил навык в наборе навыков, но ответ на запрос веб-API указывает на наличие предупреждений. Изучите предупреждения, чтобы понять, как они влияют на ваши данные, и требуется ли предпринять дополнительные действия.

Warning: The current indexer configuration does not support incremental progress

Это предупреждение возникает только для источников данных Azure Cosmos DB.

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

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

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

Дополнительные сведения см. в разделе "Инкрементальный прогресс" и пользовательские запросы.

Warning: Some data was lost during projection. Row 'X' in table 'Y' has string property 'Z' which was too long.

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

Warning: Truncated extracted text to X characters

Индексаторы ограничивают, сколько текста можно извлечь из любого документа. Это ограничение зависит от ценовой категории: 32 000 символов для уровня "Бесплатный", 64 000 для "Базовый", 4 млн для "Стандартный", 8 млн для "Стандартный" S2 и 16 млн для Standard S3. Текст, который был усечен, не будет индексирован. Чтобы избежать этого предупреждения, попробуйте разорвать документы с большим количеством текста в несколько небольших документов.

Дополнительные сведения см. в разделе "Ограничения индексатора".

Warning: Could not map output field 'X' to search index

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

Причина Сведения и пример Разрешение
Не удается выполнить итерацию по не массиву Невозможно выполнить итерацию по объекту, не являющемуся массивом /document/normalized_images/0/imageCelebrities/0/detail/celebrities. Эта ошибка возникает, когда выходные данные не является массивом. Если вы считаете, что выходные данные должны быть массивом, проверьте указанный путь поля исходного источника вывода на ошибки. Например, в имени исходного поля может отсутствовать или быть лишний *. Кроме того, возможно, что входные данные для этого навыка имеют нулевое значение, что приводит к пустому массиву. Найдите аналогичные сведения в разделе Недопустимый ввод навыка.
Не удалось выбрать 0 в массиве, отличном от массива Невозможно выбрать 0 в немассиве /document/pages. Это может произойти, если выход навыков не создает массив, и имя поля источника выхода содержит индекс массива или * в своем пути. Дважды проверьте пути, указанные в именах полей источника выходных данных, и значение поля для указанного имени поля. Найдите аналогичные сведения в разделе Недопустимый ввод навыка.

Warning: The data change detection policy is configured to use key column 'X'

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

Warning: Document text appears to be UTF-16 encoded, but is missing a byte order mark

Режимы синтаксического анализа индексатора должны знать, как кодируется текст перед анализом. Наиболее распространенными способами кодирования текста являются UTF-16 и UTF-8. UTF-8 — это кодировка переменной длины, в которой каждый символ составляет от 1 байта до 4 байтов. UTF-16 — это кодировка фиксированной длины, в которой каждый символ составляет 2 байта. UTF-16 имеет два разных варианта, big endian и little endian. Кодировка текста определяется byte order markрядом байтов перед текстом.

Кодирование Маркер байтового порядка
UTF-16 Биг-Эндиан 0xFE 0xFF
Кодировка UTF-16 в формате Little Endian 0xFF 0xFE
UTF-8 0xEF 0xBB 0xBF

Если знак порядка байтов отсутствует, предполагается, что текст закодирован как UTF-8.

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

Warning: Azure Cosmos DB collection 'X' has a Lazy indexing policy. Some data may be lost

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

Warning: The document contains very long words (longer than 64 characters). These words may result in truncated and/or unreliable model predictions.

Это предупреждение передается из языковой службы Foundry Tools. В некоторых случаях это предупреждение безопасно игнорировать, например если длинная строка является просто длинным URL-адресом. Помните, что если слово больше 64 символов, оно усечено до 64 символов, что может повлиять на прогнозы модели.

Error: Cannot write more bytes to the buffer than the configured maximum buffer size

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

Error: Failed to compare value 'X' of type M to value 'Y' of type N.

Эта ошибка обычно возникает в индексаторах Azure SQL, когда тип исходного столбца, используемого для dataChangeDetectionPolicy, не соответствует ожиданиям индексатора, особенно если convertHighWaterMarkToRowVersion включен.

Например, если столбец, используемый для обнаружения изменений, имеет тип datetime, но индексатор ожидает тип rowversion, так как convertHighWaterMarkToRowVersion включен, несоответствие приведет к ошибке.

Проверьте тип данных для столбца High Water Mark в источнике и обновите конфигурацию индексатора соответствующим образом. После проверки и обновления сбросить и повторно запустить индексатор для обработки значений столбцов.

Error: Access denied to Virtual Network/Firewall rules

Эта ошибка обычно возникает из-за одной из следующих ситуаций:

Убедитесь, что индексатор имеет доступ к компонентам установки, просматривая конфигурации ресурсов, чтобы убедиться, что они разрешают трафик ко всем необходимым службам:

Error: Credentials provided in the connection string are invalid or have expired

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

Возможная причина Сведения и пример Разрешение
Истекший или заменённый ключ Строка подключения содержит устаревший ключ, который больше не работает. Перейдите к ресурсу, к которому осуществляется обращение (например, служба хранилища Azure или Azure SQL), и скопируйте последние ключи доступа, если используется проверка подлинности на основе ключей. Затем обновите источник данных или строку подключения соответствующим образом.
Управляемая идентичность не включена или доступ не предоставлен Служба AI поиска с управляемой идентификацией включена, но не хватает необходимых ролей доступа. — включите в службе поиска управляемую идентификацию — системную или назначаемую пользователем.
— назначение соответствующих ролей идентификатору в области ресурсов, необходимой источником данных. Например, назначьте Storage Blob Data Reader на уровне учетной записи хранения для источника данных Azure Blob. Каждый источник данных имеет собственные требования к разрешениям.
Сеть или брандмауэр блокирует доступ к удостоверению личности Контактный ресурс настроен для ограничения сетевого доступа. Настройте параметры сети , чтобы разрешить доступ к поиску ИИ Azure.
Авторизация ключа отключена Доступ к общему ключу удален в источнике, но конфигурация источника данных службы поиска по-прежнему использует проверку подлинности на основе ключей. Используйте проверку подлинности управляемой идентичности и убедитесь, что разрешения на основе ролей установлены. С точки зрения службы хранилища Azure это означает, что функции авторизации общего ключа блокируются либо из самой учетной записи хранения, либо применяются с помощью политик Azure корпоративного уровня.

Error: Invalid AAD tenant

Это сообщение может отображаться, если индексатор SharePoint в Microsoft 365 не может пройти проверку подлинности в клиенте Microsoft Entra, которому принадлежит сайт SharePoint. TenantId не является обязательным в строке подключения к источнику данных SharePoint, но любое указанное вами значение должно быть идентификатором клиента Microsoft Entra (GUID) для этого сайта. Этот клиент не обязательно является Microsoft Entra клиентом, связанным со службой поиска.

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

  • Для межклиентского подключения SharePoint укажите идентификатор клиента Microsoft Entra для сайта SharePoint в качестве TenantId в строке подключения.
  • Для подключения в пределах того же клиента Microsoft Entra либо укажите идентификатор клиента сайта SharePoint, либо включите управляемый идентификатор службы поиска, назначаемый системой. При опущении TenantIdиндексатор использует клиент ресурсов Microsoft Entra, связанный с этим удостоверением.
  • Если ни явно заданный TenantId, ни тенант ресурса недоступны, индексатор сообщает: Ensure service managed identity is enabled for your service, or TenantId is specified in your строка подключения.

Неправильно сформированное значение, которое не является ИДЕНТИФИКАТОРом GUID, может привести к сбою при создании или обновлении источника данных. Корректно сформированный идентификатор для неправильного арендатора Microsoft Entra может пройти проверку источника данных, но завершиться ошибкой при аутентификации индексатора. В случае сбоев выполнения перейдите в службу поиска на портале Azure, выберите Управление поиском>Индексаторы, выберите индексатор и просмотрите сведения о его истории выполнения и состоянии.

Сведения о форматах строк подключения и инструкции по поиску идентификатора клиента Microsoft Entra для сайта SharePoint см. в разделе Настройка SharePoint в индексаторе Microsoft 365.

Error: Error detecting index schema from data source

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

Причина Сведения и пример Разрешение
Временные проблемы связи Failed to fetch, this could be due to transient communication errors with the source Временные сбои могут возникать из-за кратковременных сетевых прерываний или таймаутов служб. Повторите операцию. Если проблема является временной, она должна устраниться в последующих вызовах.
Ограничения частной конечной точки Источник данных защищен виртуальной сетью или частной конечной точкой, предотвращая доступ от индексатора. Если источник данных находится за частной конечной точкой, настройте общую приватную ссылку , чтобы поиск ИИ Azure смог подключиться к ресурсу в частном порядке. Убедитесь, что подключение к частной конечной точке утверждено.
Правила брандмауэра, блокирующие доступ В источнике данных есть правила брандмауэра, которые блокируют запросы из службы "Поиск ИИ Azure". Обновите параметры брандмауэра, чтобы разрешить входящий трафик из службы "Поиск ИИ Azure". См. настройку правил брандмауэра для разрешения доступа индексатора. Убедитесь, что разрешены IP службы поиска или исключения для доверенных служб.
Конфигурация сети не разрешает доступ индексатора Источник данных настроен таким образом, чтобы разрешать доступ только для выбранных сетей, исключая Поиск с использованием ИИ Azure. Убедитесь, что конфигурация сети источника данных разрешает доступ из службы "Поиск ИИ Azure" с помощью одного из поддерживаемых вариантов подключения: общедоступная конечная точка с правилами IP-адресов, общим приватным каналом или доверенным доступом к службе.