Обновление до пакета SDK для .NET для Службы поиска Azure версии 5

Если вы используете версию 4.0-preview или более раннюю версию пакета SDK для .NET, эта статья поможет вам обновить приложение для использования версии 5.

Более общее пошаговое руководство по пакету SDK с примерами, см. статью Использование службы "Поиск Azure" в приложении .NET.

Версия 5 пакета SDK для Поиска Azure для .NET содержит некоторые изменения из предыдущих версий. Это в основном незначительные действия, поэтому изменение кода должно требовать только минимальных усилий. Инструкции по обновлению кода для использования новой версии пакета SDK см. в разделе "Действия по обновлению".

Замечание

Если вы используете версию 2.0-preview или более раннюю версию, сначала следует обновить до версии 3, а затем обновить до версии 5. Инструкции см. в разделе , посвященном обновлению до версии 3 SDK для .NET для Поиска Azure.

Экземпляр службы поиска Azure поддерживает несколько версий REST API, включая последнюю версию. Вы можете продолжать использовать версию, если она больше не является последней, но мы рекомендуем перенести код для использования последней версии. При использовании REST API необходимо указать версию API в каждом запросе с помощью параметра версии API. При использовании пакета SDK для .NET версия используемого пакета SDK определяет соответствующую версию REST API. Если вы используете старый пакет SDK, вы можете продолжать запускать этот код без изменений, даже если служба обновляется для поддержки более новой версии API.

Новые возможности версии 5

Версия 5 пакета SDK для .NET для поиска Azure предназначена для последней общедоступной версии REST API поиска Azure, в частности 2017-11-11. Это позволяет использовать новые функции поиска Azure из приложения .NET, в том числе следующие:

  • Синонимы.
  • Теперь вы можете программно получить доступ к предупреждениям в истории выполнения индексатора (дополнительные сведения см. в свойстве WarningIndexerExecutionResult в ссылке .NET).
  • Поддержка .NET Core 2.
  • Новая структура пакета поддерживает использование только необходимых частей пакета SDK (дополнительные сведения см. в разделе "Критические изменения" версии 5 ).

Действия по обновлению

Сначала обновите ссылку NuGet для Microsoft.Azure.Search с помощью консоли диспетчера пакетов NuGet или щелкните правой кнопкой мыши ссылки на проекты и выберите пункт "Управление пакетами NuGet..." в Visual Studio.

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

Если сборка завершается сбоем, вы увидите ошибку сборки, как показано ниже:

The name 'SuggesterSearchMode' does not exist in the current context

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

Обратите внимание, что из-за изменений в упаковке пакета SDK для .NET для поиска Azure необходимо перестроить приложение, чтобы использовать версию 5. Эти изменения подробно описаны в основных изменениях версии 5.

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

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

Критические изменения в версии 5

Новая структура пакета

Самое существенное критическое изменение в версии 5 заключается в том, что Microsoft.Azure.Search сборка и её содержимое были разделены на четыре отдельных сборки, которые теперь распределены как четыре отдельных пакета NuGet.

  • Microsoft.Azure.Search: это метапакет, который включает все остальные пакеты поиска Azure в качестве зависимостей. Если вы обновляете более раннюю версию пакета SDK, просто обновите этот пакет и повторно создайте его, чтобы начать использовать новую версию.
  • Microsoft.Azure.Search.Data: используйте этот пакет, если вы разрабатываете приложение .NET с помощью поиска Azure, и вам нужно только запрашивать или обновлять документы в индексах. Если вам также нужно создать или обновить индексы, словарь синонимов или другие ресурсы, связанные с уровнем сервиса, используйте пакет Microsoft.Azure.Search.
  • Microsoft.Azure.Search.Service: используйте этот пакет, если вы разрабатываете автоматизацию в .NET для управления индексами поиска Azure, картами синонимов, индексаторами, источниками данных или другими ресурсами уровня обслуживания. Если вам нужно запрашивать или обновлять документы в индексах, используйте Microsoft.Azure.Search.Data пакет. Если вам нужны все функциональные возможности службы поиска Azure, используйте пакет Microsoft.Azure.Search вместо него.
  • Microsoft.Azure.Search.Common: распространенные типы, необходимые библиотекам .NET для поиска Azure. Не следует использовать этот пакет непосредственно в приложении; Оно предназначено только для использования в качестве зависимости.

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

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

Переход к режиму предложений

Конструктор Suggester больше не имеет enum параметра для SuggesterSearchMode. Это перечисление имело только одно значение и поэтому было избыточным. Если в результате этого возникают ошибки сборки, просто удалите ссылки на SuggesterSearchMode параметр.

Удалены устаревшие элементы

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

  • Если вы использовали IndexingParametersExtensions.IndexStorageMetadataOnly метод, используйте SetBlobExtractionMode(BlobExtractionMode.StorageMetadata) вместо этого.
  • Если вы использовали IndexingParametersExtensions.SkipContent метод, используйте SetBlobExtractionMode(BlobExtractionMode.AllMetadata) вместо этого.

Удалены предварительные версии функций

Если вы обновляетесь с версии 4.0-preview до версии 5, помните, что поддержка анализа JSON и CSV-файлов для индексаторов BLOB-объектов была удалена, так как эти функции по-прежнему находятся в предварительной версии. В частности, были удалены следующие методы IndexingParametersExtensions класса:

  • ParseJsonArrays
  • ParseDelimitedTextFiles

Если приложение имеет жесткую зависимость от этих функций, вы не сможете обновить до версии 5 пакета SDK для поиска Azure .NET. Вы можете продолжать использовать версию 4.0-preview. Однако следует помнить, что мы не рекомендуем использовать предварительные пакеты SDK в рабочих приложениях. Предварительные версии функций предназначены только для оценки и могут изменяться.

Заключение

Дополнительные сведения об использовании пакета SDK для .NET для поиска Azure см. в руководстве по .NET.

Мы приветствуем ваши отзывы о пакете SDK. Если вы столкнулись с проблемами, вы можете попросить нас обратиться за помощью в Stack Overflow. При обнаружении ошибки можно зарегистрировать проблему в репозитории GitHub пакета SDK .NET для Azure. Обязательно добавьте префикс "[Поиск Azure]" к названию проблемы.

Благодарим вас за использование службы "Поиск Azure"