Поделиться через


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

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

Индексирование останавливается, когда число ошибок превышает maxFailedItems.

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

Замечание

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

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

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

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

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

  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-файл). Причины могут быть следующими:

Причина Сведения и пример Резолюция
Блоб превышает допустимый размер 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 равным null, вместо пути в обычном текстовом формате.
Недопустимый ключ документа 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

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

Встроенные навыки служб ИИ Azure

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

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

Настраиваемые навыки

При возникновении ошибки времени ожидания с пользовательским навыком можно попробовать несколько действий. Сначала просмотрите свой пользовательский навык и убедитесь, что он не застрял в бесконечном цикле и что он возвращает результат согласованно. После подтверждения возврата результата проверьте длительность выполнения. Если вы явно не задали 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

Навык не выполнен, поскольку вызов служб ИИ Azure был ограничен. Как правило, этот класс сбоев возникает, когда слишком много навыков выполняются параллельно. Если вы используете клиентскую библиотеку 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" Некоторые навыки ожидают входных данных определенных типов, например навык анализа тональности ожидает, чтобы это был строковый тип. Если входные данные указывают нестроковое значение, навык не выполняется и не создает выходных данных. Убедитесь, что в вашем наборе данных входные значения имеют одинаковый тип, или используйте пользовательский модуль веб-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, чтобы соответствовать вашему варианту использования.

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

Если вы знаете, что набор данных содержит несколько языков и поэтому вам нужен LanguageDetectionSkill и languageCode входные данные, попробуйте добавить ConditionalSkill для фильтрации текста с языками, которые не поддерживаются перед передачей текста в следующий навык. Ниже приведен пример того, как это может выглядеть для 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'text' поле ввода может вызывать это предупреждение, если введённый текст превышает лимит символов. Ограничения входных данных можно найти в справочной документации по навыкам.

 {
    "@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. Эта ошибка возникает, когда выходные данные не является массивом. Если вы считаете, что выходные данные должны быть массивом, проверьте указанный путь к полю источника выходных данных на наличие ошибок. Например, в имени исходного поля может отсутствовать или быть лишний элемент *. Кроме того, возможно, входные данные для этой функции могут быть null, что приводит к пустому массиву. Найдите аналогичные сведения в разделе "Ввод навыка был недопустим".
Не удалось выбрать 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 endianlittle 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

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

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

Это предупреждение передается из языковой службы служб ИИ Azure. В некоторых случаях это предупреждение безопасно игнорировать, например если длинная строка является просто длинным 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 в источнике и обновите конфигурацию индексатора соответствующим образом. После проверки и обновления сбросить и повторно запустить индексатор для обработки значений столбцов.