Aracılığıyla paylaş


Azure AI Search'te eş anlamlılar ekleme

Arama hizmetinde eş anlamlı eşlem eşdeğer terimleri ilişkilendirir ve kullanıcının terimi gerçekten sağlaması gerekmeden sorgu kapsamını genişletir. Örneğin, köpek, köpek ve köpek yavrusu eşlenmiş eşlenmiş eş anlamlılar olduğunu varsayarsak köpek içeren bir belgedeki köpekle ilgili bir sorgu eşleşir. İçeriğiniz teknik jargon, argo veya belirsiz terminoloji içeriyorsa, İngilizce ve Fransızca sürümleri veya sözcük terimleri gibi farklı diller için birden çok eş anlamlı eşleme oluşturabilirsiniz.

Eş anlamlı haritalarla ilgili bazı önemli noktalar:

  • Eş anlamlı eşlemesi, bir kez oluşturulabilen ve birçok dizin tarafından kullanılabilen üst düzey bir kaynaktır.
  • Eş anlamlı eşlem, dize alanlarına uygulanır.
  • İstediğiniz zaman dizin oluşturma veya sorgularda kesinti yaşamadan eş anlamlı eşlem oluşturabilir ve atayabilirsiniz.
  • Hizmet katmanınız, oluşturabileceğiniz eş anlamlı eşleme sayısını sınırlar.
  • Arama hizmetinizde birden çok eş anlamlı eşlemesi olabilir, ancak bir dizin içinde alan tanımında yalnızca bir eş anlamlı eşleme ataması olabilir.

Eş anlamlı eşlemesi oluşturma

Eş anlamlı eşlemesi, eş anlamlı eşleme girdileri olarak işlev gösteren ad, biçim ve kurallardan oluşur. Desteklenen tek biçim , solrbiçimi ise solr kural oluşturma işlemini belirler.

Eş anlamlı eşlem oluşturmak için bunu program aracılığıyla yapın. Azure portalı eş anlamlı eşleme tanımlarını desteklemez.

Eş anlamlı eşlemesi oluşturmak için Eş Anlamlı EşlemeSi Oluştur 'u (REST API) kullanın.

POST /synonymmaps?api-version=2024-07-01
{
    "name": "geo-synonyms",
    "format": "solr",
    "synonyms": "
        USA, United States, United States of America\n
        Washington, Wash., WA => WA\n"
}

Kuralları tanımlama

Eşleme kuralları, Apache Solr'ın bu belgede açıklanan açık kaynak eş anlamlı filtre belirtimine uyar: SynonymGraphFilter. solr biçimi iki tür kuralı destekler:

  • denklik (burada terimler sorgudaki eşit yedeklerdir)

  • açık eşlemeler (terimlerin tek bir açık terimle eşlendiği)

Her kural yeni satır karakteri (\n ) ile sınırlandırılır. Ücretsiz bir hizmette eş anlamlı eşleme başına en fazla 5.000 kural ve diğer katmanlarda harita başına 20.000 kural tanımlayabilirsiniz. Her kuralda en fazla 20 genişletme veya bir kuralda öğe olabilir. Daha fazla bilgi için bkz . Eş anlamlı sınırları.

Sorgu ayrıştırıcıları, büyük veya küçük harf terimlerini otomatik olarak küçük harfle ayrıştırıyor. Dizedeki virgül veya tire gibi özel karakterleri korumak için eş anlamlı eşlem oluştururken uygun kaçış karakterlerini ekleyin.

Denklik kuralları

Eşdeğer terimlerin kuralları aynı kural içinde virgülle ayrılmıştır. İlk örnekte, ABD'deki bir sorgu ABD VEYA "Birleşik Devletler" VEYA "Amerika'nın Birleşik Devletler" olarak genişler. Bir tümcecikle eşleştirmek istiyorsanız, sorgunun kendisinin tırnak içine alınmış bir tümcecik sorgusu olması gerektiğine dikkat edin.

Denklik durumunda, köpek sorgusu sorguyu köpek yavrusu ve köpek yavrusu içerecek şekilde genişletir.

{
"format": "solr",
"synonyms": "
    USA, United States, United States of America\n
    dog, puppy, canine\n
    coffee, latte, cup of joe, java\n"
}

Açık eşleme

Açık eşleme kuralları bir okla =>gösterilir. Belirtildiğinde, arama sorgusunun sol tarafıyla => eşleşen bir terim dizisi, sorgu zamanında sağ taraftaki alternatiflerle değiştirilir.

Açık durumda, Washington, Wash. veya WA için bir sorgu WA olarak yeniden yazılır ve sorgu altyapısı yalnızca WA terimindeki eşleşmeleri arar. Açık eşleme yalnızca belirtilen yönde geçerlidir ve bu durumda WA sorgusunu Washington'a yeniden yazmaz.

{
"format": "solr",
"synonyms": "
    Washington, Wash., WA => WA\n
    California, Calif., CA => CA\n"
}

Özel karakterlerden kaçış

Eş anlamlılar, diğer tüm sorgu terimleri gibi sorgu işleme sırasında da analiz edilir. Bu, ayrılmış ve özel karakterlere yönelik kuralların eş anlamlı haritanızdaki terimler için geçerli olduğu anlamına gelir. Kaçış gerektiren karakterlerin listesi basit söz dizimi ile tam söz dizimi arasında değişir:

Varsayılan çözümleyicinin attığı karakterleri korumak için bunları koruyan bir çözümleyiciyi kullanın. Bazı seçenekler arasında hecelenmiş sözcükleri koruyan Microsoft doğal dil çözümleyicileri veya daha karmaşık desenler için özel bir çözümleyici bulunur. Daha fazla bilgi için bkz . Kısmi terimler, desenler ve özel karakterler.

Aşağıdaki örnekte, ters eğik çizgiyle bir karakterden kaçış örneği gösterilmektedir:

{
    "format": "solr",
    "synonyms": "WA\, USA, WA, Washington\n"
}

Ters eğik çizgi, JSON ve C# gibi diğer dillerde özel bir karakter olduğundan, muhtemelen iki kez kaçış yapmanız gerekir. JSON'da bir örnek aşağıda verilmişti:

{
    "format":"solr",
    "synonyms": "WA\\, USA, WA, Washington"
}

Eş anlamlı haritaları yönetme

Eş anlamlı eşlemlerini sorguyu kesintiye uğratmadan ve iş yüklerini dizine eklemeden güncelleştirebilirsiniz. Ancak, bir alana eş anlamlı eşlem eklediğinizde, eş anlamlı eşlemesini silerseniz, söz konusu alanları içeren tüm sorgular 404 hatasıyla başarısız olur.

Eş anlamlı eşlem oluşturma, güncelleştirme ve silme işlemleri her zaman belgenin tamamına yönelik bir işlemdir. Eş anlamlı eşlemesinin bölümlerini artımlı olarak güncelleştiremez veya silemezsiniz. Tek bir kuralın bile güncelleştirilmesi için yeniden yükleme gerekir.

Alanlara eş anlamlılar atama

Eş anlamlı eşlemesini oluşturduktan sonra, bunu dizininizdeki bir alana atayın. Eş anlamlı eşlemeleri atamak için bunu program aracılığıyla yapın. Azure portalı eş anlamlı eşleme alanı ilişkilendirmelerini desteklemez.

  • Bir alan veya türünde Edm.String olmalıdır Collection(Edm.String)
  • Bir alanın sahip olması gerekir "searchable":true
  • Bir alanda yalnızca bir eş anlamlı eşlem olabilir

Arama hizmetinde eş anlamlı eşlem varsa, yeniden dizin oluşturma veya yeniden derleme gerekmediğinden bir sonraki sorguda kullanılır.

Alan tanımını değiştirmek için Dizin Oluştur veya Güncelleştir 'i (REST API) kullanın.

PUT /indexes?api-version=2024-07-01
{
    "name":"hotels-sample-index",
    "fields":[
        {
            "name":"description",
            "type":"Edm.String",
            "searchable":true,
            "synonymMaps":[
            "en-synonyms"
            ]
        },
        {
            "name":"description_fr",
            "type":"Edm.String",
            "searchable":true,
            "analyzer":"fr.microsoft",
            "synonymMaps":[
            "fr-synonyms"
            ]
        }
    ]
}

Eşdeğer veya eşlenmiş alanlarda sorgu

Eş anlamlı alan ataması sorgu yazma şeklinizi değiştirmez. Eş anlamlı eşleme atamasının ardından tek fark, eş anlamlı eşlemesinde bir sorgu terimi varsa, arama altyapısının kurala bağlı olarak terimi veya tümceciği genişletmesi veya yeniden yazmasıdır.

Sorgu yürütme sırasında eş anlamlılar nasıl kullanılır?

Eş anlamlılar, bir dizinin içeriğini eşdeğer terimlerle tamamlayan bir sorgu genişletme tekniğidir, ancak yalnızca eş anlamlı ataması olan alanlar için kullanılır. Alan kapsamlı bir sorgu eş anlamlı etkinleştirilmiş bir alanı dışlarsa eş anlamlı eşleminden eşleşme görmezsiniz.

Eş anlamlı özellikli alanlar için eş anlamlılar, ilişkili alanla aynı metin analizine tabidir. Örneğin, bir alan standart Lucene çözümleyicisi kullanılarak analiz edilirse, eş anlamlı terimler de sorgu zamanında standart Lucene çözümleyicisine tabidir. Noktalama işaretleri veya tireler gibi noktalama işaretlerini korumak istiyorsanız, eş anlamlı terimde alana içerik koruma çözümleyicisi uygulayın.

Dahili olarak, eş anlamlılar özelliği OR işlecini kullanarak özgün sorguyu eş anlamlılarla yeniden yazar. Bu nedenle, isabet vurgulama ve puanlama profilleri özgün terimi ve eş anlamlıları eşdeğer olarak değerlendirir.

Eş anlamlılar yalnızca serbest biçimli metin sorgularına uygulanır ve filtreler, modeller, otomatik tamamlama veya öneriler için desteklenmez. Otomatik tamamlama ve öneriler yalnızca özgün terimi temel alır; eş anlamlı eşleşmeleri yanıtta görünmez.

Geliştirme (üretim dışı) ortamında mevcut bir dizininiz varsa, eş anlamlıların eklenmesinin, puanlama profilleri, isabet vurgulama ve öneriler de dahil olmak üzere arama deneyimini nasıl değiştirdiğini görmek için küçük bir sözlükle denemeler yapın.

Joker karakter aramaları

Eş anlamlı genişletmeleri joker karakter arama terimleri için geçerli değildir; ön ek, belirsiz ve regex terimleri genişletilmemiştir.

Eş anlamlı genişletme ve joker karakter, regex veya benzer aramalar uygulayan tek bir sorgu yapmanız gerekiyorsa, OR söz dizimini kullanarak sorguları birleştirebilirsiniz. Örneğin, basit sorgu söz dizimi için eş anlamlıları joker karakterlerle birleştirmek için terimi olacaktır <query> | <query>*.

Sonraki adım