Azure AI Search'te sorgulara yazım denetimi ekleme
Önemli
Yazım düzeltme, ek kullanım koşulları altında genel önizleme aşamasındadır. Azure portalı, önizleme REST API'leri ve Azure SDK kitaplıklarının beta sürümleri aracılığıyla kullanılabilir.
Bir sorgudaki sözcükleri arama altyapısına ulaşmadan önce yazım düzelterek geri çağırmayı geliştirebilirsiniz. speller
parametresi tüm metin (vektör olmayan) sorgu türleri için desteklenir.
Önkoşullar
Herhangi bir bölgede Temel katman veya üzeri bir arama hizmeti.
Desteklenen bir dilde içerik içeren mevcut bir arama dizini.
Desteklenen bir dile sahip ve bu dile ayarlanmış bir sorgu isteği.
queryLanguage
speller=lexicon
Yazım denetimi, parametresinde geçirilen dizelerdesearch
çalışır. Filtreler, benzer arama, joker karakter araması, normal ifadeler veya vektör sorguları için desteklenmez.
Sorgu isteğinde önizleme API'lerini destekleyen bir arama istemcisi kullanın. Azure SDK'larının REST istemcisini veya beta sürümlerini kullanabilirsiniz.
İstemci kitaplığı | Sürümler |
---|---|
REST API | Sürüm 2020-06-30-Preview ve üzeri. En son önizleme API'sini öneririz. 2024-05-01-önizleme |
.NET için Azure SDK | sürüm 11.5.0-beta.5 |
Java için Azure SDK | sürüm 11.6.0-beta.5 |
JavaScript için Azure SDK | sürüm 11.3.0-beta.8 |
Python için Azure SDK | sürüm 11.4.0b3 |
Basit arama ile yazım düzeltmesi
Aşağıdaki örnek, basit bir metin sorgusunda yazım düzeltmesini göstermek için yerleşik hotels-sample dizinini kullanır. Yazım düzeltmesi olmadan sorgu sıfır sonuç döndürür. Düzeltme ile sorgu, Johnson'ın aile odaklı tesisi için bir sonuç döndürür.
POST https://[service name].search.windows.net/indexes/hotels-sample-index/docs/search?api-version=2024-05-01-preview
{
"search": "famly acitvites",
"speller": "lexicon",
"queryLanguage": "en-us",
"queryType": "simple",
"select": "HotelId,HotelName,Description,Category,Tags",
"count": true
}
Tam Lucene ile yazım düzeltmesi
Yazım denetimi, metin analizinden geçen tek tek sorgu terimlerinde gerçekleşir. Bu nedenle yazım denetleyicisi parametresini bazı Lucene sorgularıyla kullanabilirsiniz, ancak diğerleri kullanamazsınız.
- Metin analizini atlayan uyumsuz sorgu formları şunlardır: joker karakter, regex, benzer
- Uyumlu sorgu formları şunlardır: alanlı arama, yakınlık, terim artırma
Bu örnekte, Tam Lucene söz dizimi ve yanlış yazılmış sorgu terimiyle Kategori alanı üzerinde alanlı arama kullanılmaktadır. Yazım denetleyicisi dahil edilirse, "Suiite" içindeki yazım hatası düzeltilir ve sorgu başarılı olur.
POST https://[service name].search.windows.net/indexes/hotels-sample-index/docs/search?api-version=2024-05-01-preview
{
"search": "Category:(Resort and Spa) OR Category:Suiite",
"queryType": "full",
"speller": "lexicon",
"queryLanguage": "en-us",
"select": "Category",
"count": true
}
Anlamsal derecelendirme ile yazım düzeltmesi
Bu sorgu, biri dışında her terimde yazım hatasıyla, ilgili sonuçları döndürmek için yazım düzeltmelerinden geçer. Daha fazla bilgi edinmek için bkz . Anlam derecesini yapılandırma.
POST https://[service name].search.windows.net/indexes/hotels-sample-index/docs/search?api-version=2024-05-01-preview
{
"search": "hisotoric hotell wiht great restrant nad wiifi",
"queryType": "semantic",
"speller": "lexicon",
"queryLanguage": "en-us",
"searchFields": "HotelName,Tags,Description",
"select": "HotelId,HotelName,Description,Category,Tags",
"count": true
}
Desteklenen diller
için geçerli değerler, desteklenen diller queryLanguage
listesinden (REST API başvurusu) kopyalanan aşağıdaki tabloda bulunabilir.
Dil | queryLanguage |
---|---|
İngilizce [EN] | EN, EN-US (varsayılan) |
İspanyolca [ES] | ES, ES-ES (varsayılan) |
Fransızca [FR] | FR, FR-FR (varsayılan) |
Almanca [DE] | DE, DE-DE (varsayılan) |
Felemenkçe [NL] | NL, NL-BE, NL-NL (varsayılan) |
Not
Daha önce semantik dereceleyici genel önizleme queryLanguage
aşamasındayken, semantik derecelendirme için parametresi de kullanılıyordu. Anlam dereceleyicisi artık dilden bağımsızdır.
Dil çözümleyicisi ile ilgili dikkat edilmesi gerekenler
İngilizce olmayan içerik içeren dizinler, ana dilin dil kurallarını uygulamak için genellikle İngilizce olmayan alanlarda dil çözümleyicileri kullanır.
Dil analizinden geçen içeriğe yazım denetimi eklerken, her dizin oluşturma ve sorgu işleme adımı için aynı dili kullanarak daha iyi sonuçlar elde edebilirsiniz. Örneğin, bir alanın içeriği "fr.microsoft" dil çözümleyicisi kullanılarak dizine alındıysa, sorgular ve yazım denetiminin tümü fransızca sözcük sözlüğü veya bir biçimdeki dil kitaplığını kullanmalıdır.
Azure AI Search'te dil kitaplıklarının nasıl kullanıldığını özetlemek için:
Dil çözümleyicileri dizin oluşturma ve sorgu yürütme sırasında çağrılabilir ve Apache Lucene (örneğin, "de.lucene") veya Microsoft ("de.microsoft") olabilir.
Yazım denetimi sırasında çağrılan dil sözcük kodları, desteklenen dil tablosundaki dil kodlarından biri kullanılarak belirtilir.
Sorgu isteğinde, öğesine queryLanguage
atanan değer için speller
geçerlidir.
Not
Çeşitli özellik değerleri arasında dil tutarlılığı yalnızca dil çözümleyicileri kullanıyorsanız önemlidir. Dil bağımsız çözümleyicileri (anahtar sözcük, basit, standart, durdurma, boşluk veya standardasciifolding.lucene
gibi) queryLanguage
kullanıyorsanız, değer istediğiniz gibi olabilir.
Bir arama dizinindeki içerik birden çok dilde oluşturulabilir ancak sorgu girişi büyük olasılıkla bir dildedir. Arama altyapısı, , dil çözümleyicisinin ve içeriğin oluşturulduğu dilin queryLanguage
uyumluluğunu denetlemez, bu nedenle yanlış sonuçlar üretmekten kaçınmak için sorguları buna göre kapsamlandırdığından emin olun.