Megosztás a következőn keresztül:


Szinonimák az Azure AI Searchben

Egy keresési szolgáltatás szinonimája megfelelteti a kifejezéseket, és anélkül bővíti a lekérdezés hatókörét, hogy a felhasználónak ténylegesen meg kellene adnia a kifejezést. Tegyük fel például, hogy a "kutya", a "kutya" és a "kölyök" szinonimák vannak leképezve, a "kutya" egyezéseket tartalmazó dokumentum "kutya" lekérdezése. Több szinonimatérképet is létrehozhat különböző nyelvekhez, például angol és francia verziókhoz, illetve lexikonokat, ha a tartalom technikai zsargont, szlenget vagy homályos terminológiát tartalmaz.

A szinonimatérképek néhány fontos pontja:

  • A szinonimák leképezése egy legfelső szintű erőforrás, amelyet egyszer lehet létrehozni, és számos index használhatja.
  • A szinonimatérkép a sztringmezőkre vonatkozik.
  • Szinonimák leképezését bármikor létrehozhatja és hozzárendelheti, az indexelés és a lekérdezések zavartalanul.
  • A szolgáltatási szint határozza meg, hogy hány szinonimatérképet hozhat létre.
  • A keresési szolgáltatás több szinonimatérképet is tartalmazhat, de egy indexen belül egy meződefiníció csak egy szinonimatérkép-hozzárendeléssel rendelkezhet.

Szinonimatérkép létrehozása

A szinonimatérképek névből, formátumból és szabályokból állnak, amelyek szinonimatérkép-bejegyzésekként működnek. Az egyetlen támogatott formátum az solr, és a formátum határozza meg a solr szabály felépítését.

Szinonimatérkép létrehozásához tegye ezt programozott módon. A portál nem támogatja a szinonimatérkép-definíciókat.

Szinonimák térképének létrehozásához használja a Szinonimák létrehozása térképet (REST API).

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"
}

Szabályok definiálása

A leképezési szabályok megfelelnek az Apache Solr nyílt forráskódú szinonimaszűrő-specifikációjának, amely a következő dokumentumban található: SynonymFilter. A solr formátum kétféle szabályt támogat:

  • egyenértékűség (ahol a kifejezések egyenlő helyettesítők a lekérdezésben)

  • explicit leképezések (ahol a kifejezések egy explicit kifejezésre vannak leképezve)

Minden szabályt az új vonal karakter (\n) tagolt. Szinonimatérképenként legfeljebb 5000 szabályt definiálhat egy ingyenes szolgáltatásban, és térképenként 20 000 szabályt más szinteken. Minden szabály legfeljebb 20 bővítéssel (vagy egy szabály elemeivel) rendelkezhet. További információ: Szinonimák korlátai.

A lekérdezéselemzők automatikusan kisbetűsek a nagybetűs vagy vegyes kisbetűs kifejezéseknél. A sztring speciális karaktereinek (például vesszőnek vagy kötőjelnek) megőrzéséhez adja hozzá a megfelelő feloldó karaktereket a szinonimatérkép létrehozásakor.

Egyenértékűségi szabályok

Az egyenértékű kifejezésekre vonatkozó szabályok vesszősen vannak elválasztva ugyanazon a szabályon belül. Az első példában a lekérdezés USA or USA "United States" "United States of America"vagy . Figyelje meg, hogy ha egy kifejezésen egyezni szeretne, akkor magának a lekérdezésnek idézőjelbe foglalt kifejezéses lekérdezésnek kell lennie.

Az egyenértékűségi esetben egy lekérdezés dog kibontja a lekérdezést, hogy belefoglalja és caninebefoglalja puppy a lekérdezést.

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

Explicit leképezés

Az explicit leképezés szabályait egy nyíl =>jelöli. Ha meg van adva, a keresési lekérdezések bal oldalának => megfelelő kifejezéssorozatot a jobb oldalon lévő alternatívák helyettesítik a lekérdezési időpontban.

Explicit esetben a lekérdezés a kifejezéshez Washingtontartozik, Wash. vagy WA újra van írva WA, és a lekérdezési motor csak a kifejezés WAegyezéseit keresi. Az explicit leképezés csak a megadott irányba vonatkozik, és ebben az esetben nem írja át újra a lekérdezést WA Washington .

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

Speciális karakterek menekülése

A szinonimákat a lekérdezésfeldolgozás során ugyanúgy elemzi a rendszer, mint bármely más lekérdezési kifejezés, ami azt jelenti, hogy a fenntartott és a speciális karakterekre vonatkozó szabályok a szinonimák térképében szereplő kifejezésekre vonatkoznak. A menekülő karakterek listája az egyszerű szintaxis és a teljes szintaxis között változik:

Ha meg szeretné őrizni az alapértelmezett elemző által elvetett karaktereket, helyettesítse be azokat megőrző elemzőt. Egyes lehetőségek közé tartoznak a Microsoft természetes nyelvelemzői, amelyek megőrzik a kötőjeles szavakat, vagy egy egyéni elemzőt az összetettebb mintákhoz. További információ: Részleges kifejezések, minták és speciális karakterek.

Az alábbi példa egy példát mutat be arra, hogyan háríthat el egy karaktert fordított perjellel:

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

Mivel a fordított perjel maga egy speciális karakter más nyelvekben, például a JSON-ban és a C#-ban, valószínűleg meg kell szabadulnia belőle. Íme egy példa a JSON-ban:

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

Szinonimatérképek kezelése

A szinonimatérképeket anélkül frissítheti, hogy megzavarná a lekérdezést és a számítási feladatokat. Ha azonban szinonimatérképet ad hozzá egy mezőhöz, ha ezután töröl egy szinonimatérképet, a szóban forgó mezőket tartalmazó lekérdezések 404-ben meghiúsulnak.

Szinonimák leképezésének létrehozása, frissítése és törlése mindig teljes dokumentumos művelet. A szinonimatérkép egyes részeit nem lehet növekményesen frissíteni vagy törölni. Ha egyetlen szabályt is frissít, újra kell betöltenie.

Szinonimák hozzárendelése mezőkhöz

A szinonimatérkép létrehozása után rendelje hozzá az index egy mezőjéhez. Szinonimák hozzárendeléséhez tegye ezt programozott módon. A portál nem támogatja a szinonimák térképmező-társításait.

  • Egy mezőnek típusnak Edm.String vagy Collection(Edm.String)
  • Egy mezőnek rendelkeznie kell "searchable":true
  • Egy mező csak egy szinonimatérképet tartalmazhat

Ha a szinonimatérkép megtalálható a keresési szolgáltatásban, akkor a következő lekérdezésben lesz használva, nincs szükség újraindexelésre vagy újraépítésre.

A meződefiníció módosításához használja a Create or Update Indexet (REST API).

POST /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"
            ]
        }
    ]
}

Lekérdezés egyenértékű vagy megfeleltetett mezőkön

A szinonimák mezőhozzárendelése nem változtatja meg a lekérdezések írásának módját. A szinonimák hozzárendelése után az egyetlen különbség az, hogy ha egy lekérdezési kifejezés létezik a szinonimák térképén, a keresőmotor a szabálytól függően kibontja vagy újraírja a kifejezést vagy kifejezést.

Szinonimák használata a lekérdezés végrehajtása során

A szinonimák olyan lekérdezésbővítési technikák, amelyek egyenértékű kifejezésekkel kiegészítik az index tartalmát, de csak szinonima-hozzárendeléssel rendelkező mezők esetén. Ha egy mezőhatókörrel rendelkező lekérdezés kizár egy szinonima-kompatibilis mezőt, akkor a szinonimák leképezésében nem jelenik meg egyezés.

Szinonima-kompatibilis mezők esetén a szinonimákra ugyanaz a szövegelemzés vonatkozik, mint a társított mezőre. Ha például egy mezőt a standard Lucene-elemzővel elemeznek, a szinonimák kifejezései a standard Lucene-elemzőre is vonatkoznak a lekérdezési időpontban. Ha meg szeretné őrizni az írásjeleket( például pontokat vagy szaggatott kötőjeleket) a szinonimák kifejezésben, alkalmazzon egy tartalommegőrző elemzőt a mezőben.

A szinonimák funkció belsőleg újraírja az eredeti lekérdezést az OR operátor szinonimáival. Ezért a találatok kiemelési és pontozási profiljai egyenértékűként kezelik az eredeti kifejezést és szinonimákat.

A szinonimák csak a szabad formátumú szöveges lekérdezésekre vonatkoznak, és nem támogatottak szűrők, aspektusok, automatikus kiegészítés vagy javaslatok esetében. Az automatikus kiegészítés és javaslatok csak az eredeti kifejezésen alapulnak; szinonima egyezések nem jelennek meg a válaszban.

A szinonimabővítések nem vonatkoznak a helyettesítő karakterek keresési kifejezésére; az előtag, a fuzzy és a regex kifejezés nem lesz kibontva.

Ha egyetlen lekérdezést kell végrehajtania, amely szinonimák kiterjesztését és helyettesítő karaktereket, regex vagy homályos kereséseket alkalmaz, kombinálhatja a lekérdezéseket az OR szintaxissal. Ha például a szinonimákat helyettesítő karakterekkel szeretné kombinálni az egyszerű lekérdezési szintaxishoz, a kifejezés a következő: <query> | <query>*.

Ha fejlesztési (nem gyártási) környezetben rendelkezik meglévő indexel, kísérletezzen egy kis szótárral, hogy lássa, a szinonimák hozzáadása hogyan változtatja meg a keresési élményt, beleértve a pontozási profilokra gyakorolt hatást, a találatok kiemelését és a javaslatokat.

Következő lépések