Aracılığıyla paylaş


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

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

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 derecelendirmesini 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 derecelendirme genel önizleme queryLanguage aşamasındayken, anlam derecelendirmesi için parametresi de kullanılıyordu. Anlamsal sıralama 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 spellergeç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.lucenegibi) 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 queryLanguageuyumluluğunu denetlemez, bu nedenle yanlış sonuçlar üretmekten kaçınmak için sorguları buna göre kapsamlandırdığından emin olun.

Sonraki adımlar