Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure Search .NET SDK2.0-preview veya daha eski bir sürümünü kullanıyorsanız, bu makale uygulamanızı 3. sürümü kullanacak şekilde yükseltmenize yardımcı olur.
Daha genel bir SDK kılavuzu, örnekler de dahil olmak üzere, için bkz. .NET Uygulamasından Azure Search'ü Kullanma.
Azure Search .NET SDK'sının 3. sürümü önceki sürümlerden bazı değişiklikler içerir. Bunlar çoğunlukla küçük olduğundan kodunuzu değiştirmek için yalnızca en az çaba gerekir. Kodunuzu yeni SDK sürümünü kullanacak şekilde değiştirme yönergeleri için bkz. yükseltme adımları.
Uyarı
1.0.2-preview veya daha eski bir sürüm kullanıyorsanız, önce sürüm 1.1'e yükseltmeniz ve ardından sürüm 3'e yükseltmeniz gerekir. Yönergeler için bkz. Azure Search .NET SDK sürüm 1.1'e yükseltme.
Azure Search hizmet örneğiniz, en son sürüm de dahil olmak üzere çeşitli REST API sürümlerini destekler. Artık en son sürüm olmadığında bir sürümü kullanmaya devam edebilirsiniz, ancak kodunuzu en yeni sürümü kullanacak şekilde geçirmenizi öneririz. REST API'yi kullanırken, api-version parametresi aracılığıyla her istekte API sürümünü belirtmeniz gerekir. .NET SDK'sını kullanırken, kullandığınız SDK'nın sürümü REST API'nin ilgili sürümünü belirler. Daha eski bir SDK kullanıyorsanız, hizmet daha yeni bir API sürümünü destekleyecek şekilde yükseltildiğinde bile bu kodu hiçbir değişiklik olmadan çalıştırmaya devam edebilirsiniz.
Sürüm 3'teki yenilikler
Azure Search .NET SDK'sının 3. sürümü, Özellikle 2016-09-01 azure Search REST API'sinin genel kullanıma sunulan en son sürümünü hedefler. Bu, aşağıdakiler de dahil olmak üzere bir .NET uygulamasından Azure Search'ün birçok yeni özelliğinin kullanılmasını mümkün kılar:
- Özel çözümleyiciler
- Azure Blob Depolama ve Azure Tablo Depolama dizinleyici desteği
- alan eşlemeleri aracılığıyla dizin oluşturucu özelleştirmesi
- Dizin tanımlarının, dizin oluşturucuların ve veri kaynaklarının güvenli bir şekilde eş zamanlı güncelleştirilmesini sağlamak için ETags desteği
- Model sınıfınızı süsleyerek ve yeni
FieldBuildersınıfını kullanarak bildirim temelli olarak dizin alanı tanımları oluşturma desteği. - .NET Core ve .NET Taşınabilir Profil 111 desteği
Yükseltme adımları
İlk olarak, NuGet Paket Yöneticisi Konsolu'nu kullanarak veya proje başvurularınıza sağ tıklayıp Visual Studio'da "NuGet Paketlerini Yönet..." seçeneğini seçerek Microsoft.Azure.Search için NuGet başvurunuzu güncelleyin.
NuGet yeni paketleri ve bağımlılıklarını indirdikten sonra projenizi yeniden derleyin. Kodunuzun nasıl yapılandırıldığına bağlı olarak başarıyla yeniden derlenmesi mümkün olabilir. Öyleyse, başlamaya hazırsınız!
Derlemeniz başarısız olursa aşağıdakine benzer bir derleme hatası görmeniz gerekir:
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?)
Sonraki adım bu derleme hatasını düzeltmektir. Hataya neyin neden olduğu ve nasıl düzeltileceğinin ayrıntıları için bkz. sürüm 3'teki hataya neden olan değişiklikler .
Eski yöntemler veya özelliklerle ilgili ek yapı uyarıları görebilirsiniz. Uyarılar, kullanım dışı bırakılan özellik yerine nelerin kullanılacağına ilişkin yönergeler içerir. Örneğin, uygulamanız IndexingParameters.Base64EncodeKeys özelliğini kullanıyorsa "This property is obsolete. Please create a field mapping using 'FieldMapping.Base64Encode' instead." yazan bir uyarı almanız gerekir
Derleme hatalarını düzeltdikten sonra, dilerseniz yeni işlevlerden yararlanmak için uygulamanızda değişiklikler yapabilirsiniz. SDK'daki yeni özellikler Sürüm 3'teki yeniliklerbölümünde ayrıntılı olarak açıklandı.
Sürüm 3'te uyumsuzluk yaratan değişiklikler
Sürüm 3'te uygulamanızı yeniden derlemeye ek olarak kod değişiklikleri gerektirebilecek az sayıda uyumsuzluk yaratan değişiklik bulunmaktadır.
Indexes.GetClient dönüş türü
Indexes.GetClient yöntemi yeni bir dönüş türüne sahip. Daha önce SearchIndexClientdöndürdü, ancak bu değişiklik sürüm 2.0-önizlemede ISearchIndexClient olarak değiştirildi ve bu değişiklik sürüm 3'e taşınıyor. Bu, GetClient yöntemini birim testleri için taklit etmek amacıyla ISearchIndexClientiçin bir sahte uygulama döndüren müşterileri desteklemek içindir.
Örnek
Kodunuz şöyle görünüyorsa:
SearchIndexClient indexClient = serviceClient.Indexes.GetClient("hotels");
Derleme hatalarını düzeltmek için bunu şu şekilde değiştirebilirsiniz:
ISearchIndexClient indexClient = serviceClient.Indexes.GetClient("hotels");
AnalyzerName, DataType ve diğerleri artık örtük olarak dizelere dönüştürülemez
Azure Search .NET SDK'sında ExtensibleEnum'dan türetilmiş birçok tür vardır. Daha önce bu türlerin tümü stringtürüne örtük olarak dönüştürülebilirdi. Ancak, bu sınıflar için Object.Equals uygulamasında bir hata bulundu ve bu örtük dönüştürmeyi devre dışı bırakmak için gereken hatayı düzelttik.
string'a açık dönüştürme hala izin verilmektedir.
Örnek
Kodunuz şöyle görünüyorsa:
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 }),
};
Derleme hatalarını düzeltmek için bunu şu şekilde değiştirebilirsiniz:
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 })
};
Eski üyeler kaldırıldı
Sürüm 2.0-preview'da kullanım dışı olarak işaretlenen ve ardından sürüm 3'te kaldırılan yöntemler veya özelliklerle ilgili derleme hataları görebilirsiniz. Bu tür hatalarla karşılaşırsanız bunları şu şekilde çözebilirsiniz:
- Bu oluşturucuyu kullanıyorsanız:
ScoringParameter(string name, string value)bunun yerine şunu kullanın:ScoringParameter(string name, IEnumerable<string> values) -
ScoringParameter.Valueözelliğini kullanıyorsanız bunun yerineScoringParameter.Valuesözelliğini veyaToStringyöntemini kullanın. -
SearchRequestOptions.RequestIdözelliğini kullanıyorsanız bunun yerineClientRequestIdözelliğini kullanın.
Önizleme özellikleri kaldırıldı
Sürüm 2.0-preview'dan sürüm 3'e yükseltiyorsanız, bu özellikler hala önizleme aşamasında olduğundan Blob Dizin Oluşturucuları için JSON ve CSV ayrıştırma desteğinin kaldırıldığını unutmayın. Özellikle, IndexingParametersExtensions sınıfının aşağıdaki yöntemleri kaldırıldı:
ParseJsonParseJsonArraysParseDelimitedTextFiles
Uygulamanızın bu özelliklere sıkı bir bağımlılığı varsa, Azure Search .NET SDK'sının 3. sürümüne yükseltemezsiniz. Sürüm 2.0-preview'ı kullanmaya devam edebilirsiniz. Ancak, üretim uygulamalarında önizleme SDK'larının kullanılmasını önermeyebileceğimizi unutmayın. Önizleme özellikleri yalnızca değerlendirme amaçlıdır ve değişebilir.
Sonuç
Azure Search .NET SDK'sini kullanma hakkında daha fazla ayrıntıya ihtiyacınız varsa .NET Nasıl Yapılırbölümüne bakın.
SDK ile ilgili geri bildirimlerinizi bekliyoruz. Sorunlarla karşılaşırsanız, Stack Overflowhakkında yardım isteyebilirsiniz. Bir hata bulursanız, Azure .NET SDK GitHub deposunda bir sorun bildirebilirsiniz. Sorun başlığınıza "[Azure Search]" ön ekini eklemeyi unutmayın.
Azure Search'i kullandığınız için teşekkür ederiz!