Helyesírás-ellenőrzés hozzáadása a lekérdezésekhez a Cognitive Search

Fontos

A helyesírás-javítás nyilvános előzetes verzióban, kiegészítő használati feltételek mellett érhető el. Csak a Azure Portal előzetes verzióban REST API érhető el.

A visszahívás javítása érdekében javítsa ki az egyes keresési lekérdezési kifejezéseket, mielőtt azok elérnék a keresőmotort. A helyesírási paraméter minden lekérdezéstípus esetében támogatott: egyszerű,teljes ésaz új szemantikai beállítás, amely jelenleg nyilvános előzetes verzióban érhető el.

A Speller a szemantikai keresési előzetes verzióval együtt jelent meg, és megosztja a queryLanguage paramétert, de más esetben független funkció, saját előfeltételeivel. A szolgáltatás használata nem számít fel regisztrációt vagy további díjakat.

Előfeltételek

A helyesírás-ellenőrzéshez a következőkre lesz szüksége:

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

  • Egy meglévő keresési index támogatott nyelven lévő tartalommal.

  • Egy olyan lekérdezési kérelem, amelynél a "speller=lexicon" és a "queryLanguage" egy támogatott nyelvre van beállítva. A helyesírás-ellenőrzés a "search" paraméterben átadott sztringekon működik. Szűrők esetén nem támogatott.

Használjon olyan keresési ügyfelet, amely támogatja az előzetes verziójú API-kat a lekérdezési kérésben. REST esetén a Postman,a Visual Studio Codevagy a módosított kód használatával REST-hívásokat kezdeményezhet az előzetes verziójú API-khoz. Az Azure SDK-k bétaverzióját is használhatja.

Ügyfélkódtár Verziók
REST API 2021-04-30-Preview vagy 2020-06-30-Preview
Azure SDK for .NET 11.3.0-beta.2-es verzió
Javához készült Azure SDK 11.4.0-beta.2-es verzió
Azure SDK for JavaScript 11.2.0-beta.2-es verzió
Azure SDK for Python 11.2.0b3-as verzió

Az alábbi példa a beépített hotels-sample indexet használja egy egyszerű, szabad szöveges lekérdezés helyesírás-korrekcióinak szemléltetére. 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 Annak a családorientált megoldásnak, amely a családorientált.

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-sel

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

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

Ez a példa mezős keresést használ a Kategória mezőre teljes Lucene szintaxissal és egy hibásan írt lekérdezési kifejezéssel. A helyesírási karakterlánc beírása javítja a "Suiite" elírását, é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
}

Ez a lekérdezés, amely egy kivételével minden kifejezésben elírásokat ad vissza, helyesírási javításokon megy keresztül, és releváns eredményeket ad vissza. További információ: Szemantikai lekérdezés létrehozá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

A queryLanguage érvényes értékei a következő táblázatban találhatók, amely a támogatott nyelvek listájából másolható ki (REST API referencia).

Nyelv queryLanguage (lekérdezési nyelv)
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)

queryAnguage considerations (query Nyelvvel kapcsolatos szempontok)

Ahogy máshol említettük, a lekérdezési kérések csak egy queryLanguage paraméterrel használhatók, de ezt a paramétert több funkció osztja meg, amelyek mind különböző nyelvhorszokat támogatnak. Ha csak helyesírás-ellenőrzést használ, a fenti táblázatban a támogatott nyelvek listája a teljes lista.

Nyelvi elemzővel kapcsolatos szempontok

A nem angol nyelvű tartalmakat tartalmazó indexek gyakran nyelvi elemzőket alkalmaznak a nem angol nyelvű mezőkben a natív nyelv nyelvi szabályainak alkalmazására.

Ha most helyesírás-ellenőrzést ad hozzá a nyelvelemzésen is áteső tartalmakhoz, jobb eredményeket érhet el, ha ugyanazt a nyelvet használja az indexelés és a lekérdezésfeldolgozás minden lépése során. Ha például egy mező tartalma a "fr.microsoft" nyelvi elemzővel lett indexelve, akkor a lekérdezések, helyesírás-ellenőrzés, szemantikai feliratok és szemantikai válaszok mind francia lexikális vagy valamilyen nyelvi kódtárat használjanak.

A nyelvi kódtárak a következő Cognitive Search:

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

  • A helyesírás-ellenőrzés során meghívott nyelvi lexikonok a fenti táblázat egyik nyelvkódja alapján vannak megadva.

A lekérdezési kérelmekben a queryLanguage érték a helyesírásra,a válaszokra és a feliratra egyaránt érvényes.

Megjegyzés

A különböző tulajdonságértékek nyelvi konzisztenciája csak nyelvi elemzők használata esetén jelent problémát. Ha nyelvtől független elemzőket használ (például kulcsszó, egyszerű, standard, leállítás, téreltér vagy ), akkor a queryLanguage értéke bármilyen standardasciifolding.lucene lehet.

Bár egy keresési index tartalma több nyelven is összeállítható, a lekérdezés bemenete nagy valószínűséggel egyben van. A keresőmotor nem ellenőrzi a queryLanguage, a language analyzer és a tartalom összeállító nyelvének kompatibilitását, ezért mindenképpen ennek megfelelően állítsa be a lekérdezéseket, hogy elkerülje a helytelen eredmények előállítását.

Következő lépések