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.
Not
Azure Yapay Zeka Arama Azure portalı, REST API'leri ve Azure SDK’ları aracılığıyla kullanılabilir. Ayrıca kuruluş içeriğini Microsoft Foundry portalındaki aracılar için yeniden kullanılabilir, izin kullanan bilgi bankalarına dönüştüren yönetilen bilgi katmanı Foundry IQ'yu temel alır.
Birden çok dilde dizeleriniz varsa, daha modern bir yaklaşım olan çok dilli içeriği matematiksel olarak temsil etmek için vektör aramasını kullanabilirsiniz. Alternatif olarak, vektör kullanmıyorsanız, dizin oluşturma ve sorgu yürütme sırasında belirli bir dilin dil kurallarını kullanarak dizeleri analiz eden dil çözümleyicileri ekleyebilirsiniz. Dil çözümleyicisi ile aksanları, karakter değişkenlerini, noktalama işaretlerini ve sözcük kök formlarını daha iyi ele alırsınız.
Azure Yapay Zeka Arama, Microsoft ve Lucene çözümleyicilerini destekler. Varsayılan olarak, arama altyapısı dilden bağımsız olan Standart Lucene'i kullanır. Test, varsayılan çözümleyicinin yetersiz olduğunu gösteriyorsa, bunu bir dil çözümleyicisiyle değiştirin.
Azure Yapay Zeka Arama'te birden çok dili desteklemeye yönelik iki desen şunlardır:
tüm okunabilir içeriğin aynı dilde olduğu ve aranabilir tüm dize alanlarının aynı dil çözümleyicisini kullanacak şekilde ilişkilendirildiği dile özgü dizinler oluşturun.
Her alanın dile özgü sürümleriyle (örneğin, description_en, description_fr, description_ko) harmanlanmış bir dizin oluşturun ve tam metin aramasını sorgu zamanında yalnızca bu alanlarla kısıtlayın. Bu yaklaşım, dil çeşitlemelerinin açıklama gibi yalnızca birkaç alanda gerekli olduğu senaryolar için kullanışlıdır.
Bu makalede, harmanlanmış dizinde dile özgü alanları yapılandırmaya ve sorgulamaya yönelik adımlara ve en iyi yöntemlere odaklanılır:
- Her dil değişkeni için bir dize alanı tanımlayın.
- Her alanda bir dil çözümleyicisi ayarlayın.
- Sorgu isteğinde parametresini
searchFieldsbelirli alanlara ayarlayın ve ardından yalnızca uyumlu içeriğe sahip alanları döndürmek için kullanınselect.
Not
Büyük dil modellerini artırılmış bir alma modeli (RAG) deseninde kullanıyorsanız, çevrilmiş dizeleri döndürmek için istem üzerinde mühendislik yapabilirsiniz. Bu senaryo bu makalenin kapsamı dışındadır.
Önkoşullar
Dil analizi, türü Edm.Stringsearchableolan ve yerelleştirilmiş metin içeren alanlara uygulanır. Metin çevirisine de ihtiyacınız varsa, yapay zeka zenginleştirmesinin gereksinimlerinizi karşılayıp karşılamadiğini görmek için sonraki bölümü gözden geçirin.
Dize olmayan alanlar ve aranamayan dize alanları sözcük temelli analizden geçirilmez ve belirteç olarak belirtilmez. Bunun yerine, oldukları gibi depolanır ve kelimesi kelimesine geri döndürülür.
Metin çevirisi ekleme
Bu makalede, çevrilmiş dizelerin zaten var olduğu varsayılır. Böyle bir durum değilse, dizinleme sırasında metin çevirisini kullanarak bir zenginleştirme işlem hattına Foundry Tools ekleyebilirsiniz. Metin çevirisi dizin oluşturucu özelliğine ve Döküm Araçları'na bağımlıdır, ancak tüm kurulum Azure Yapay Zeka Arama'te yapılır.
Metin çevirisi eklemek için şu adımları izleyin:
İçeriğinizin desteklenen bir veri kaynağında olduğunu doğrulayın.
İçeriğinize işaret eden bir veri kaynağı oluşturun.
Metin Çevirisi becerisini içeren bir beceri kümesi oluşturun.
Metin Çevirisi becerisi giriş olarak tek bir dize alır. Birden çok alanınız varsa, her alan için bir kez olmak üzere Metin Çevirisi'ni birden çok kez çağıran bir beceri kümesi oluşturabilirsiniz. Alternatif olarak, birden çok alanın içeriğini tek bir uzun dizede birleştirmek için Metin Birleştirme becerisini kullanabilirsiniz.
Çevrilmiş dizeler için alanlar içeren bir dizin oluşturun. Bu makalenin çoğu, çok dilli içeriği dizine ekleme ve sorgulamaya yönelik dizin tasarımını ve alan tanımlarını kapsar.
Beceri setinize bir Microsoft Foundry kaynağı ekleyin.
Dizin oluşturucuyu oluşturup çalıştırın ve ardından yalnızca ilgilendiğim alanları sorgulamak için bu makaledeki yönergeleri uygulayın.
Farklı dillerde içerik için alanlar tanımlama
Azure Yapay Zeka Arama'te sorgular tek bir dizini hedefler. Tek bir arama deneyiminde dile özgü dizeler sağlamak isteyen geliştiriciler, genellikle İngilizce dizeler için bir alan ve Fransızca dizeler için bir alan gibi değerleri depolamak için dil başına bir ayrılmış alan tanımlar.
analyzer Alan tanımındaki özelliği, dil çözümleyicisini ayarlamak için kullanılır. Hem dizin oluşturma hem de sorgu yürütme için kullanılır.
{
"name": "hotels-sample",
"fields": [
{
"name": "Description",
"type": "Edm.String",
"retrievable": true,
"searchable": true,
"analyzer": "en.microsoft"
},
{
"name": "Description_fr",
"type": "Edm.String",
"retrievable": true,
"searchable": true,
"analyzer": "fr.microsoft"
}
]
}
Dizin oluşturma ve yükleme
Ara adım, sorguyu formüle etmeden önce dizini oluşturmak ve doldurmaktır. Tamlık için burada bu adımdan bahsedeceğiz. Dizin kullanılabilirliğini belirlemenin bir yolu, portaldaki dizinler listesini denetlemektir.
Sorguyu kısıtlama ve sonuçları kırpma
Sorgudaki parametreler, aramayı belirli alanlarla sınırlamak ve ardından senaryonuz için yararlı olmayan alanların sonuçlarını kırpmak için kullanılır.
| Parametreler | Amaç |
|---|---|
searchFields |
Tam metin aramasını adlandırılmış alanlar listesiyle sınırlar. |
select |
Yanıtı yalnızca belirttiğiniz alanları içerecek şekilde kırpılır. Varsayılan olarak, tüm alınabilir alanlar döndürülür. parametresi, select hangilerinin döndürüleceğini seçmenize olanak tanır. |
Aramayı Fransızca dizeler içeren alanlarla sınırlama hedefi verdiyseniz, sorguyu bu dildeki dizeleri içeren alanlarda hedeflemek için kullanabilirsiniz searchFields .
Sorgu isteğinde çözümleyicinin belirtilmesi gerekli değildir. Alan tanımındaki dil çözümleyicisi, sorgu yürütme sırasında metin analizini belirler. Birden çok alan belirten sorgular için, her farklı dil çözümleyicisini çağıran terimler veya tümcecikler, her alan için atanan çözümleyiciler tarafından eşzamanlı olarak işlenir.
Varsayılan olarak, arama alınabilir olarak işaretlenmiş tüm alanları döndürür. Bu nedenle, sağlamak istediğiniz dile özgü arama deneyimine uygun olmayan alanları dışlamak isteyebilirsiniz. Özellikle, aramayı Fransızca dizeleri olan bir alanla sınırlandırdıysanız, İngilizce dizeleri olan alanları sonuçlarınızdan dışlamak isteyebilirsiniz. Sorgu parametresini select kullanmak, çağıran uygulamaya hangi alanların döndürülecekleri üzerinde denetim sahibi olmanıza neden oluyor.
REST örneği
POST https://[service name].search.windows.net/indexes/hotels-sample/docs/search?api-version=2026-04-01
{
"search": "animaux acceptés",
"searchFields": "Tags, Description_fr",
"select": "HotelName, Description_fr, Address/City, Address/StateProvince, Tags",
"count": true
}
C# örneği
private static void RunQueries(SearchClient srchclient)
{
SearchOptions options;
SearchResults<Hotel> response;
options = new SearchOptions()
{
IncludeTotalCount = true,
Filter = "",
OrderBy = { "" }
};
options.Select.Add("HotelId");
options.Select.Add("HotelName");
options.Select.Add("Description_fr");
options.SearchFields.Add("Tags");
options.SearchFields.Add("Description_fr");
response = srchclient.Search<Hotel>("*", options);
WriteDocuments(response);
}
Dile özgü alanları artırma
Bazen sorguyu veren aracının dili bilinmez ve bu durumda sorgu tüm alanlara aynı anda verilebilir. Belirli bir dildeki sonuçlar için IA tercihi, puanlama profilleri kullanılarak tanımlanabilir. Aşağıdaki örnekte, Fransızca açıklamasında bulunan eşleşmeler, diğer dillerdeki eşleşmelere göre daha yüksek puanlanmıştır:
"scoringProfiles": [
{
"name": "frenchFirst",
"text": {
"weights": { "description_fr": 2 }
}
}
]
Daha sonra puanlama profilini arama isteğine dahil edebilirsiniz:
POST /indexes/hotels/docs/search?api-version=2026-04-01
{
"search": "pets allowed",
"searchFields": "Tags, Description_fr",
"select": "HotelName, Tags, Description_fr",
"scoringProfile": "frenchFirst",
"count": true
}