Aracılığıyla paylaş


Azure Search .NET SDK sürüm 3'e yükseltme

Azure Search .NET SDK'sının 2.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.

Örnekler de dahil olmak üzere SDK'nın daha genel bir kılavuzu 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ı .

Not

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 Arama hizmeti ö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 dizin oluşturucu 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 FieldBuilder sınıfı kullanarak dizin alanı tanımlarını bildirimli olarak 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 kullanmak için Microsoft.Azure.Search NuGet başvurunuzu güncelleştirin veya proje başvurularınıza sağ tıklayıp "NuGet Paketlerini Yönet..." seçeneğini belirleyin. Visual Studio...

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 derlenebilir. Ö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'te hataya neden olan değişiklikler.

Eski yöntemler veya özelliklerle ilgili ek derleme 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 özelliğini kullanıyorsa IndexingParameters.Base64EncodeKeys şunu belirten bir uyarı almanız gerekir: "This property is obsolete. Please create a field mapping using 'FieldMapping.Base64Encode' instead."

Derleme hatalarını düzeltdikten sonra, isterseniz yeni işlevlerden yararlanmak için uygulamanızda değişiklikler yapabilirsiniz. SDK'daki yeni özellikler , Sürüm 3'teki yenilikler bölümünde ayrıntılı olarak açıklandı.

Sürüm 3'te hataya neden olan değişiklikler

Sürüm 3'te uygulamanızı yeniden derlemeye ek olarak kod değişiklikleri gerektirebilecek az sayıda hataya neden olan değişiklik vardır.

Indexes.GetClient dönüş türü

yöntemi Indexes.GetClient yeni bir dönüş türüne sahip. Daha önce döndürdü SearchIndexClient, ancak bu sürüm 2.0-önizleme sürümünde olarak değiştirildi ISearchIndexClient ve bu değişiklik sürüm 3'e taşıyor. Bunun nedeni, sahte bir uygulaması döndürerek birim testleri için yöntemiyle alay GetClient etmek isteyen müşterileri desteklemektir ISearchIndexClient.

Örnek

Kodunuz aşağıdaki gibi 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 türünden ExtensibleEnumtüretilen birçok tür vardır. Daha önce bu türlerin tümü türüne stringörtük olarak dönüştürülebilirdi. Ancak bu sınıflar için uygulamada bir hata bulundu Object.Equals ve bu örtük dönüştürme devre dışı bırakılarak gerekli hata düzeltildi. için açık dönüştürmeye string hala izin verilir.

Örnek

Kodunuz aşağıdaki gibi 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-önizlemede kullanımdan kaldırıldı 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)
  • özelliğini kullanıyorsanızScoringParameter.Value, bunun yerine özelliğini veya ToString yöntemini kullanınScoringParameter.Values.
  • özelliğini kullanıyorsanız SearchRequestOptions.RequestId , bunun yerine özelliğini kullanın ClientRequestId .

Önizleme özellikleri kaldırıldı

Sürüm 2.0-preview'dan sürüm 3'e yükseltiyorsanız, bu özellikler ö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, sınıfının aşağıdaki yöntemleri IndexingParametersExtensions kaldırıldı:

  • ParseJson
  • ParseJsonArrays
  • ParseDelimitedTextFiles

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. 2.0-preview sürümünü kullanmaya devam edebilirsiniz. Ancak üretim uygulamalarında önizleme SDK'larının kullanılmasını önermememizi lütfen unutmayın. Önizleme özellikleri yalnızca değerlendirme amaçlıdır ve değişebilir.

Sonuç

Azure Search .NET SDK'sını kullanma hakkında daha fazla ayrıntıya ihtiyacınız varsa bkz. .NET Nasıl Yapılır.

SDK ile ilgili geri bildirimlerinizi memnuniyetle karşılıyoruz. Sorunlarla karşılaşırsanız , Stack Overflow hakkında bizden yardım isteyebilirsiniz. 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!