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

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

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

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

Примечание.

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

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

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

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

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

  1. Перейдите к портал Azure и найдите служба ИИ.
  2. После того как вы перейдете в служба ИИ, перейдите на вкладку "Индексаторы".
  3. В списке индексаторов определите конкретный индексатор, который требуется проверить.
  4. В столбце "Журнал выполнения" щелкните гиперссылку "Состояние", связанную с выбранным индексатором.
  5. Если возникла ошибка, наведите указатель мыши на сообщение об ошибке. Область появится в правой части экрана с подробными сведениями об ошибке.

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

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

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

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

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

Начиная с версии API 2019-05-06, ошибки индексатора на уровне элементов и предупреждения структурированы таким образом, чтобы обеспечить большую ясность по причинам и дальнейшим действиям. Они содержат следующие свойства:

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

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

Причина Сведения/пример Разрешение
Большой двоичный объект превышает ограничение размера Document is '150441598' bytes, which exceeds the maximum size '134217728' bytes for document extraction for your current service tier. Ошибки индексирования 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

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

Причина Сведения/пример Разрешение
Не удалось обновить BLOB-объект проекции 'blobUri' в контейнере 'containerName' Указанный контейнер не существует. Индексатор проверка, если указанный контейнер был создан ранее и при необходимости создаст его, но он выполняет только этот проверка один раз для каждого запуска индексатора. Эта ошибка означает, что что-то удалило контейнер после этого шага. Чтобы устранить эту ошибку, попробуйте оставить только сведения об учетной записи хранения, дождитесь завершения работы индексатора и повторно запустите индексатор.
Не удалось обновить BLOB-объект проекции '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" Некоторые навыки предполагают входные данные определенных типов, например, для навыка тональности параметр text должен быть строкой. Если входные данные указывают нестроковое значение, навык не выполняется и не создает выходных данных. Убедитесь, что набор данных имеет одинаковые входные значения в типе, или используйте Пользовательский навык веб-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, предполагая, что данный язык поддерживается для этого навыка.

Если вы знаете, что набор данных содержит несколько языков, поэтому вам нужен ЯзыкDetectionSkill и languageCode входные данные, попробуйте добавить условныйskill для фильтрации текста с языками, которые не поддерживаются перед передачей текста в подчиненный навык. Ниже приведен пример того, как это может выглядеть для 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": [...]
  }

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

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 миллионов — для уровня "Стандартный S3". Текст, который был усечен, не будет индексирован. Чтобы избежать этого предупреждения, попробуйте разбить документы с большим объемом текста на несколько небольших документов.

См. дополнительные сведения об ограничении индексатора.

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

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

Причина Сведения/пример Разрешение
Невозможно выполнить итерацию для параметра, не являющегося массивом "Невозможно выполнить итерацию по параметру, /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 с прямым порядком 0xFE 0xFF
UTF-8 0xEF 0xBB 0xBF

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

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

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.

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

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

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