Synonyma ve službě Azure AI Search

Mapy synonym ve vyhledávací službě jsou globální prostředek, který přidružuje ekvivalentní termíny a rozšiřuje rozsah dotazu, aniž by uživatel musel termín skutečně zadat. Předpokládejme například, že "pes", "psí" a "štěňátko" jsou namapovaná synonyma, dotaz na "psí" se bude shodovat s dokumentem obsahujícím "pes".

Vytváření synonym

Mapa synonym je prostředek, který lze vytvořit jednou a použít mnoho indexů. Úroveň služby určuje, kolik map synonym můžete vytvořit– od tří map synonym pro úrovně Free a Basic až 20 pro úrovně Standard.

Můžete vytvořit více map synonym pro různé jazyky, jako je angličtina a francouzština nebo lexikony, pokud váš obsah obsahuje technickou žargon, slang nebo nejasnou terminologii. I když ve vyhledávací službě můžete vytvořit více map synonym, definice pole může mít pouze jedno přiřazení mapování synonym.

Mapa synonym se skládá z názvu, formátu a pravidel, která fungují jako položky mapování synonym. Jediný podporovaný formát je solra solr formát určuje výstavbu pravidla.

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

Pokud chcete vytvořit mapu synonym, udělejte to programově (portál nepodporuje definice map synonym):

Definování pravidel

Pravidla mapování odpovídají specifikaci opensourcového filtru synonym Apache Solru popsaného v tomto dokumentu: SynonymFilter. Formát solr podporuje dva druhy pravidel:

  • ekvivalence (pokud jsou termíny v dotazu stejné)

  • explicitní mapování (kde se termíny mapují na jeden explicitní termín před dotazováním)

Každé pravidlo musí být oddělené znakem nového řádku (\n). V bezplatné službě můžete definovat až 5 000 pravidel na mapu synonym a 20 000 pravidel na mapu v jiných úrovních. Každé pravidlo může mít až 20 rozšíření (nebo položek v pravidle). Další informace najdete v tématu Omezení synonym.

Analyzátory dotazů automaticky malá a malá a velká písmena, ale pokud chcete zachovat speciální znaky v řetězci, například čárku nebo pomlčku, přidejte při vytváření mapy synonym příslušné řídicí znaky.

Pravidla ekvivalence

Pravidla pro ekvivalentní termíny jsou v rámci stejného pravidla oddělená čárkami. V prvním příkladu se dotaz rozbalí na USAUSA OR "United States" ."United States of America" Všimněte si, že pokud se chcete shodovat s frází, musí být samotný dotaz s uvozovkami.

V případě ekvivalence dotaz rozbalí dog také tak, aby zahrnoval puppy a canine.

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

Explicitní mapování

Pravidla explicitního mapování jsou označena šipkou =>. Při zadání se sekvence termínů vyhledávacího dotazu, který odpovídá levé straně => , nahradí alternativami na pravé straně v době dotazu.

V explicitním případě dotaz na Washingtonvýraz Wash. nebo WA se přepíše jako WAa dotazovací stroj hledá pouze shody v termínu WA. Explicitní mapování se použije pouze v zadaném směru a v tomto případě dotaz nepřepíše WAWashington .

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

Zapouzdření speciálních znaků

Při fulltextovém vyhledávání se synonyma analyzují během zpracování dotazů stejně jako jakýkoli jiný termín dotazu, což znamená, že pravidla týkající se vyhrazených a speciálních znaků se vztahují na termíny v mapě synonym. Seznam znaků, které vyžadují odvozování, se liší mezi jednoduchou syntaxí a úplnou syntaxí:

Vzpomeňte si, že pokud potřebujete zachovat znaky, které by jinak bylo při indexování ve výchozím analyzátoru zahozeno, měli byste nahradit analyzátor, který je zachová. Mezi volby patří analyzátory přirozeného jazyka Microsoftu, které zachová slova s dělením slov, nebo vlastní analyzátor pro složitější vzory. Další informace naleznete v části Částečné termíny, vzory a speciální znaky.

Následující příklad ukazuje příklad řídicího znaku pomocí zpětného lomítka:

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

Vzhledem k tomu, že zpětné lomítko je v jiných jazycích, jako je JSON a C#, speciální znak, budete ho pravděpodobně muset dvojitě uvozit. Například json odeslaný do rozhraní REST API pro výše uvedenou mapu synonym by vypadal takto:

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

Nahrávání a správa map synonym

Jak už jsme zmínili dříve, můžete vytvořit nebo aktualizovat mapu synonym bez přerušení úloh dotazování a indexování. Mapa synonym je samostatný objekt (například indexy nebo zdroje dat) a pokud ho žádné pole nepoužívá, aktualizace nezpůsobí selhání indexování nebo dotazů. Jakmile ale přidáte mapu synonym do definice pole, odstraníte-li mapování synonym, jakýkoli dotaz, který obsahuje daná pole, selže s chybou 404.

Vytvoření, aktualizace a odstranění mapy synonym je vždy operace celého dokumentu, což znamená, že nemůžete aktualizovat ani odstranit části mapy synonym postupně. Aktualizace i jednoho pravidla vyžaduje opětovné načtení.

Přiřazení synonym k polím

Po nahrání mapy synonym můžete povolit synonyma u polí typu Edm.String nebo Collection(Edm.String), u polí, která mají "searchable":true. Jak je uvedeno, definice pole může používat pouze jednu mapu synonym.

POST /indexes?api-version=2023-11-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"
            ]
        }
    ]
}

Dotaz na ekvivalentní nebo mapovaná pole

Přidání synonym neukládá nové požadavky na vytváření dotazů. Dotazy na termíny a fráze můžete vydávat stejně jako před přidáním synonym. Jediným rozdílem je, že pokud termín dotazu existuje v mapě synonym, dotazovací modul buď rozbalí nebo přepíše termín nebo frázi v závislosti na pravidlu.

Jak se používají synonyma při provádění dotazu

Synonyma jsou technika rozšíření dotazu, která doplňuje obsah indexu ekvivalentními termíny, ale pouze pro pole, která mají přiřazení synonyma. Pokud dotaz s oborem pole vyloučí pole s povoleným synonymem, neuvidíte shody z mapy synonym.

U polí s povoleným synonymem se synonyma řídí stejnou textovou analýzou jako přidružené pole. Pokud je například pole analyzováno pomocí standardního analyzátoru Lucene, budou termíny synonym v době dotazu podléhat standardnímu analyzátoru Lucene. Pokud chcete zachovat interpunkci, jako jsou tečky nebo pomlčky, použijte v poli analyzátor zachování obsahu.

Funkce synonym interně přepisuje původní dotaz synonymy pomocí operátoru OR. Z tohoto důvodu se pomocí zvýrazňování a bodování profilů zachází s původním termínem a synonymy jako s ekvivalentem.

Synonyma platí jenom pro dotazy na text ve volném formátu a nepodporují se pro filtry, omezující vlastnosti, automatické dokončování nebo návrhy. Automatické dokončování a návrhy jsou založeny pouze na původním termínu; v odpovědi se nezobrazují shody synonym.

Rozšíření synonym se nevztahují na zástupné hledané termíny; výrazy prefix, fuzzy a regex nejsou rozbalené.

Pokud potřebujete provést jeden dotaz, který použije rozšíření synonym a zástupné hledané závislosti, regulární výrazy nebo přibližné vyhledávání, můžete dotazy kombinovat pomocí syntaxe OR. Pokud chcete například zkombinovat synonyma se zástupnými znaky pro jednoduchou syntaxi dotazu, termín by byl <query> | <query>*.

Pokud máte existující index ve vývojovém (neprodukčním) prostředí, experimentujte s malým slovníkem a podívejte se, jak přidání synonym mění prostředí hledání, včetně dopadu na bodovací profily, zvýraznění hitů a návrhů.

Další kroky