Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Jeśli używasz wersji 2.0 lub starszej zestawu SDK platformy .NET usługi Azure Search, ten artykuł pomoże Ci uaktualnić aplikację do korzystania z wersji 3.
Aby uzyskać bardziej ogólny przewodnik po SDK, w tym przykłady, zobacz Jak używać usługi Azure Search z aplikacji platformy .NET.
Wersja 3 zestawu .NET SDK usługi Azure Search zawiera pewne zmiany z wcześniejszych wersji. Są one głównie niewielkie, więc zmiana kodu powinna wymagać tylko minimalnego nakładu pracy. Aby uzyskać instrukcje dotyczące zmiany kodu w celu korzystania z nowej wersji zestawu SDK, zobacz Kroki uaktualniania.
Uwaga / Notatka
Jeśli używasz wersji 1.0.2-preview lub starszej, najpierw należy przeprowadzić uaktualnienie do wersji 1.1, a następnie uaktualnić ją do wersji 3. Aby uzyskać instrukcje, zobacz Uaktualnianie do zestawu .NET SDK usługi Azure Search w wersji 1.1 .
Wystąpienie usługi Azure Search obsługuje kilka wersji interfejsu API REST, w tym najnowsze. Możesz nadal używać wersji, gdy nie jest już najnowsza, ale zalecamy przeprowadzenie migracji kodu w celu korzystania z najnowszej wersji. W przypadku korzystania z interfejsu API REST należy określić wersję interfejsu API w każdym żądaniu za pośrednictwem parametru api-version. W przypadku korzystania z zestawu .NET SDK używana wersja zestawu SDK określa odpowiednią wersję interfejsu API REST. Jeśli używasz starszego zestawu SDK, możesz nadal uruchamiać ten kod bez zmian, nawet jeśli usługa zostanie uaktualniona do obsługi nowszej wersji interfejsu API.
Co nowego w wersji 3
Wersja 3 zestawu .NET SDK usługi Azure Search jest przeznaczona dla najnowszej ogólnie dostępnej wersji interfejsu API REST usługi Azure Search, w szczególności 2016-09-01. Dzięki temu można użyć wielu nowych funkcji usługi Azure Search z poziomu aplikacji .NET, w tym następujących:
- Analizatory niestandardowe
- Obsługa indeksatora usługi Azure Blob Storage i usługi Azure Table Storage
- Dostosowywanie indeksatora za pomocą mapowań pól
- Obsługa elementów ETag w celu umożliwienia bezpiecznego współbieżnego aktualizowania definicji indeksu, indeksatorów i źródeł danych
- Obsługa definiowania pól indeksu w sposób deklaratywny poprzez dekorowanie klasy modelu i użycie nowej klasy
FieldBuilder. - Obsługa programów .NET Core i .NET Portable Profile 111
Kroki uaktualniania
Najpierw zaktualizuj odwołanie NuGet dla Microsoft.Azure.Search za pomocą Konsoli Menedżera pakietów NuGet lub kliknij prawym przyciskiem myszy odwołania do projektu i wybierz pozycję "Zarządzaj pakietami NuGet..." w programie Visual Studio.
Gdy NuGet pobierze nowe pakiety i ich zależności, przebuduj projekt. W zależności od struktury kodu, może on zostać pomyślnie odbudowany. Jeśli tak, możesz zacząć!
Jeśli kompilacja zakończy się niepowodzeniem, powinien zostać wyświetlony błąd kompilacji podobny do następującego:
Program.cs(31,45,31,86): error CS0266: Cannot implicitly convert type 'Microsoft.Azure.Search.ISearchIndexClient' to 'Microsoft.Azure.Search.SearchIndexClient'. An explicit conversion exists (are you missing a cast?)
Następnym krokiem jest naprawienie tego błędu kompilacji. Zobacz Istotne zmiany w wersji 3 , aby uzyskać szczegółowe informacje na temat przyczyn błędu i sposobu jego naprawy.
Mogą zostać wyświetlone dodatkowe ostrzeżenia kompilacji związane z przestarzałymi metodami lub właściwościami. Ostrzeżenia będą zawierać instrukcje dotyczące tego, co użyć zamiast przestarzałej funkcji. Jeśli na przykład aplikacja używa właściwości IndexingParameters.Base64EncodeKeys, powinno zostać wyświetlone ostrzeżenie z informacją "This property is obsolete. Please create a field mapping using 'FieldMapping.Base64Encode' instead."
Po usunięciu błędów kompilacji możesz wprowadzić zmiany w aplikacji, aby skorzystać z nowych funkcji, jeśli chcesz. Nowe funkcje w zestawie SDK zostały szczegółowo opisane w temacie Co nowego w wersji 3.
Istotne zmiany w wersji 3
Istnieje niewielka liczba zmian powodujących niezgodność w wersji 3, które mogą wymagać zmian kodu oprócz ponownego kompilowania aplikacji.
Typ zwracany przez Indexes.GetClient
Metoda Indexes.GetClient ma nowy typ zwracany. Wcześniej zwracano SearchIndexClient, ale zostało to zmienione na ISearchIndexClient w wersji 2.0-preview, a ta zmiana została przeniesiona do wersji 3. Dzięki temu klienci, którzy chcą mockować metodę GetClient na potrzeby testów jednostkowych, mogą uzyskać pozorną implementację ISearchIndexClient.
Przykład
Jeśli kod wygląda następująco:
SearchIndexClient indexClient = serviceClient.Indexes.GetClient("hotels");
Możesz go zmienić, aby naprawić błędy kompilacji:
ISearchIndexClient indexClient = serviceClient.Indexes.GetClient("hotels");
AnalyzerName, DataType i inne nie są już niejawnie konwertowane na ciągi
Istnieje wiele typów w zestawie .NET SDK usługi Azure Search, które pochodzą od ExtensibleEnum. Wcześniej wszystkie te typy były niejawnie konwertowane na typ string. Jednak w implementacji Object.Equals tych klas wykryto usterkę, a jej naprawa wymagała wyłączenia tej niejawnej konwersji. Jawna konwersja na string jest nadal dozwolona.
Przykład
Jeśli kod wygląda następująco:
var customTokenizerName = TokenizerName.Create("my_tokenizer");
var customTokenFilterName = TokenFilterName.Create("my_tokenfilter");
var customCharFilterName = CharFilterName.Create("my_charfilter");
var index = new Index();
index.Analyzers = new Analyzer[]
{
new CustomAnalyzer(
"my_analyzer",
customTokenizerName,
new[] { customTokenFilterName },
new[] { customCharFilterName }),
};
Możesz go zmienić, aby naprawić błędy kompilacji:
const string CustomTokenizerName = "my_tokenizer";
const string CustomTokenFilterName = "my_tokenfilter";
const string CustomCharFilterName = "my_charfilter";
var index = new Index();
index.Analyzers = new Analyzer[]
{
new CustomAnalyzer(
"my_analyzer",
CustomTokenizerName,
new TokenFilterName[] { CustomTokenFilterName },
new CharFilterName[] { CustomCharFilterName })
};
Usunięto przestarzałych członków
Mogą wystąpić błędy kompilacji związane z metodami lub właściwościami oznaczonymi jako przestarzałe w wersji 2.0-preview, a następnie usunięte w wersji 3. Jeśli wystąpią takie błędy, poniżej przedstawiono sposób ich rozwiązywania:
- Jeśli używasz tego konstruktora:
ScoringParameter(string name, string value)użyj następującego:ScoringParameter(string name, IEnumerable<string> values) - Jeśli używasz właściwości
ScoringParameter.Value, użyj właściwościScoringParameter.Valueslub metodyToString. - Jeśli używałeś właściwości
SearchRequestOptions.RequestId, zamiast tego użyj właściwościClientRequestId.
Usunięto funkcje w wersji zapoznawczej
Jeśli uaktualniasz wersję 2.0-preview do wersji 3, pamiętaj, że obsługa analizowania plików JSON i CSV dla indeksatorów obiektów blob została usunięta, ponieważ te funkcje są nadal dostępne w wersji zapoznawczej. Usunięto następujące metody klasy IndexingParametersExtensions:
ParseJsonParseJsonArraysParseDelimitedTextFiles
Jeśli aplikacja ma twardą zależność od tych funkcji, nie będzie można uaktualnić do wersji 3 zestawu .NET SDK usługi Azure Search. Możesz nadal używać wersji 2.0-preview. Należy jednak pamiętać, że nie zalecamy używania wersji zapoznawczych SDK w aplikacjach produkcyjnych. Funkcje w wersji zapoznawczej są przeznaczone tylko do oceny i mogą ulec zmianie.
Podsumowanie
Jeśli potrzebujesz dodatkowych informacji na temat korzystania z Azure Search .NET SDK, zobacz .NET How-to.
Z zadowoleniem przyjmujemy Twoją opinię na temat zestawu SDK. Jeśli napotkasz problemy, śmiało poproś nas o pomoc na Stack Overflow. Jeśli znajdziesz usterkę, możesz zgłosić problem w repozytorium GitHub zestawu Azure .NET SDK. Pamiętaj, aby poprzedzać tytuł zgłoszenia ciągiem "[Azure Search]".
Dziękujemy za korzystanie z usługi Azure Search!