Helyesírás-ellenőrzés hozzáadása lekérdezésekhez az Azure AI Searchben

Fontos

A helyesírás-javítás nyilvános előzetes verzióban, kiegészítő használati feltételek mellett érhető el. Az Azure Portalon, a REST API-k előzetes verzióján és az Azure SDK-kódtárak bétaverzióján keresztül érhető el.

A visszahívást úgy javíthatja, hogy helyesírás-javítást végez egy lekérdezésben, mielőtt azok elérnék a keresőmotort. A speller paraméter minden szöveges (nem vektoros) lekérdezéstípus esetében támogatott.

Előfeltételek

  • Keresési szolgáltatás az alapszintű vagy annál magasabb szinten, bármely régióban.

  • Meglévő keresési index támogatott nyelvű tartalommal.

  • Egy olyan lekérdezési kérelem, amely támogatott nyelvvel rendelkezik speller=lexicon és queryLanguage van beállítva. A helyesírás-ellenőrzés a paraméterben átadott sztringeken search működik. Nem támogatott szűrők, homályos keresés, helyettesítő karakterek keresése, reguláris kifejezések vagy vektoros lekérdezések esetén.

Használjon olyan keresési ügyfelet, amely támogatja az előzetes verziójú API-kat a lekérdezési kérelemben. A módosított REST-ügyfél vagy kód használatával REST-hívásokat kezdeményezhet az előzetes verziójú API-khoz. Az Azure SDK-k bétaverzióit is használhatja.

Ügyfélkódtár Verziók
REST API 2020-06-30-preview és újabb verziók. A jelenlegi verzió: 2023-10-01-Preview
Azure SDK for .NET 11.5.0-beta.5-es verzió
Javához készült Azure SDK 11.6.0-beta.5-es verzió
Azure SDK for JavaScript verzió: 11.3.0-beta.8
Azure SDK for Python 11.4.0b3-es verzió

Az alábbi példa a beépített hotels-mintaindex használatával mutatja be a helyesírás-javítást egy egyszerű szöveges lekérdezésen. Helyesírás-javítás nélkül a lekérdezés nulla eredményt ad vissza. A javítással a lekérdezés egy eredményt ad vissza Johnson családközpontú üdülőhelyéhez.

POST https://[service name].search.windows.net/indexes/hotels-sample-index/docs/search?api-version=2020-06-30-Preview
{
    "search": "famly acitvites",
    "speller": "lexicon",
    "queryLanguage": "en-us",
    "queryType": "simple",
    "select": "HotelId,HotelName,Description,Category,Tags",
    "count": true
}

Helyesírás-javítás teljes Lucene-val

A helyesírás-javítás a szövegelemzésen átesett egyes lekérdezési kifejezéseken történik, ezért használhatja a helyesírás-ellenőrző paramétert néhány Lucene-lekérdezéssel, másokkal azonban nem.

  • A szövegelemzést megkerülő nem kompatibilis lekérdezési űrlapok a következők: helyettesítő karakter, regex, fuzzy
  • A kompatibilis lekérdezési űrlapok a következők: mezős keresés, közelség, kifejezésnövelés

Ez a példa a Kategória mezőn végzett mezőalapú keresést használja teljes Lucene szintaxissal és egy hibásan írt lekérdezési kifejezéssel. A helyesírás-ellenőrző használatával a "Suiite" elírása ki lett javítva, és a lekérdezés sikeres lesz.

POST https://[service name].search.windows.net/indexes/hotels-sample-index/docs/search?api-version=2020-06-30-Preview
{
    "search": "Category:(Resort and Spa) OR Category:Suiite",
    "queryType": "full",
    "speller": "lexicon",
    "queryLanguage": "en-us",
    "select": "Category",
    "count": true
}

Helyesírás-javítás szemantikai rangsorolással

Ez a lekérdezés egy kivételével minden kifejezésben elírásokat tartalmaz, és helyesírás-javításon megy keresztül a releváns eredmények visszaadása érdekében. További információ: Szemantikai rangsorolás konfigurálása.

POST https://[service name].search.windows.net/indexes/hotels-sample-index/docs/search?api-version=2020-06-30-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
}

Támogatott nyelvek

Az érvényes értékek queryLanguage az alábbi táblázatban találhatók, a támogatott nyelvek listájából másolva (REST API-referencia).

Nyelv queryLanguage
Angol [EN] EN, EN-US (alapértelmezett)
Spanyol [ES] ES, ES-ES (alapértelmezett)
Francia [FR] FR, FR-FR (alapértelmezett)
Német [DE] DE, DE-DE (alapértelmezett)
Holland [NL] NL, NL-BE, NL-NL (alapértelmezett)

Feljegyzés

Korábban, míg a szemantikai rangsor nyilvános előzetes verzióban volt, a queryLanguage paramétert a szemantikai rangsoroláshoz is használták. A szemantikai rangsorolás mostantól nyelvi agnosztikus.

Nyelvelemző szempontok

A nem angol nyelvű tartalmakat tartalmazó indexek gyakran használnak nyelvelemzőket a nem angol nyelvű mezőkön az anyanyelv nyelvi szabályainak alkalmazásához.

Ha nyelvelemzésen is áteső tartalomhoz ad hozzá helyesírás-ellenőrzést, minden indexelési és lekérdezésfeldolgozási lépéshez ugyanazt a nyelvet használva érhet el jobb eredményeket. Ha például egy mező tartalmát az "fr.microsoft" nyelvelemzővel indexelték, akkor a lekérdezések és helyesírás-ellenőrzésnek valamilyen formában francia lexikont vagy nyelvi könyvtárat kell használnia.

A nyelvi kódtárak Azure AI Searchben való használatával kapcsolatos további tudnivalók:

  • A nyelvelemzők meghívhatók az indexelés és a lekérdezés végrehajtása során, és Apache Lucene (például "de.lucene") vagy Microsoft ("de.microsoft").

  • A helyesírás-ellenőrzés során meghívott nyelvi lexikonok a támogatott nyelvi táblázat egyik nyelvi kódjának használatával vannak megadva.

Egy lekérdezési kérelemben a hozzárendelt queryLanguage érték a következőre spellervonatkozik: .

Feljegyzés

A különböző tulajdonságértékek nyelvi konzisztenciája csak akkor jelent problémát, ha nyelvelemzőket használ. Ha nyelvi agnosztikus elemzőket használ (például kulcsszó, egyszerű, standard, stop, whitespace vagy standardasciifolding.lucene), akkor az queryLanguage érték tetszőleges lehet.

Bár a keresési index tartalma több nyelven is összeállítható, a lekérdezés bemenete valószínűleg egy nyelven történik. A keresőmotor nem ellenőrzi a nyelvelemző és a tartalomkészítés nyelvének queryLanguagekompatibilitását, ezért ügyeljen arra, hogy a lekérdezéseket ennek megfelelően hatókörbe állítsa, hogy ne eredményezzen helytelen eredményeket.

Következő lépések