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 ExtensibleEnum
tü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ız
ScoringParameter.Value
, bunun yerine özelliğini veyaToString
yöntemini kullanınScoringParameter.Values
. - özelliğini kullanıyorsanız
SearchRequestOptions.RequestId
, bunun yerine özelliğini kullanınClientRequestId
.
Ö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!