Sdílet prostřednictvím


Přidání kontroly pravopisu do dotazů ve službě Azure AI Search

Důležité

Oprava pravopisu je ve veřejné verzi Preview v dodatečných podmínkách použití. Je k dispozici prostřednictvím webu Azure Portal, rozhraní REST API verze Preview a beta verzí knihoven sady Azure SDK.

Úplnost můžete zlepšit tím, že slova v dotazu opravíte pravopis, než se dostanou do vyhledávacího webu. Parametr speller je podporován pro všechny typy dotazů typu text (bez vektoru).

Požadavky

  • Vyhledávací služba na úrovni Basic nebo vyšší v libovolné oblasti.

  • Existující index vyhledávání s obsahem v podporovaném jazyce.

  • Požadavek na dotaz , který má speller=lexicon a queryLanguage je nastavený na podporovaný jazyk. Kontrola pravopisu funguje u řetězců předaných v parametru search . Nepodporuje se pro filtry, vyhledávání přibližných shod, vyhledávání zástupných znaků, regulární výrazy nebo vektorové dotazy.

Použijte klienta vyhledávání, který podporuje rozhraní API ve verzi Preview v požadavku dotazu. Můžete použít klienta REST nebo beta verze sad Azure SDK.

Klientská knihovna Verze
REST API Verze 2020-06-30-Preview a novější. Doporučujeme nejnovější rozhraní API ve verzi Preview. 2024-05-01-preview
Sada Azure SDK pro .NET verze 11.5.0-beta.5
Azure SDK pro Javu verze 11.6.0-beta.5
Azure SDK for JavaScript verze 11.3.0-beta.8
Azure SDK pro Python verze 11.4.0b3

Následující příklad používá předdefinovaný index hotels-sample k předvedení opravy pravopisu v jednoduchém textovém dotazu. Bez opravy pravopisu dotaz vrátí nulové výsledky. Při opravě vrátí dotaz jeden výsledek pro rodinný resort Johnsona.

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

Oprava pravopisu s plnou lucene

K opravě pravopisu dochází u jednotlivých termínů dotazu, které procházejí analýzou textu, což je důvod, proč můžete použít parametr kontroly pravopisu s některými dotazy Lucene, ale ne jinými.

  • Nekompatibilní formuláře dotazů, které obcházejí analýzu textu, zahrnují: zástupný znak, regulární výraz, přibližné chyby.
  • Mezi kompatibilní formuláře dotazů patří: hledání v poli, bezkontaktní komunikace, zvýšení termínu

V tomto příkladu se používá vyhledávání v poli Category s úplnou syntaxí Lucene a chybně napsaným termínem dotazu. Zahrnutím kontroly pravopisu je překlep v "Suiite" opraven a dotaz bude úspěšný.

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

Opravy pravopisu pomocí sémantického řazení

Tento dotaz s překlepy v každém termínu kromě jednoho prochází opravami pravopisu, aby vrátil relevantní výsledky. Další informace najdete v tématu Konfigurace sémantického rankeru.

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

Podporované jazyky

Platné hodnoty queryLanguage lze najít v následující tabulce, zkopírované ze seznamu podporovaných jazyků (referenční dokumentace k rozhraní REST API).

Jazyk queryLanguage
Angličtina [EN] EN, EN-US (výchozí)
Španělština [ES] ES, ES-ES (výchozí)
Francouzština [FR] FR, FR-FR (výchozí)
Němčina [DE] DE, DE-DE (výchozí)
Nizozemština [NL] NL, NL-BE, NL-NL (výchozí)

Poznámka:

Dříve, zatímco sémantický ranker byl ve verzi Public Preview, queryLanguage byl parametr použit také pro sémantické řazení. Sémantický ranker je teď nezávislý na jazyce.

Důležité informace o analyzátoru jazyka

Indexy, které obsahují neanglický obsah, často používají analyzátory jazyka v jiných než anglických polích k použití lingvistických pravidel nativního jazyka.

Při přidávání kontroly pravopisu do obsahu, který prochází také analýzou jazyka, můžete dosáhnout lepších výsledků pomocí stejného jazyka pro každý krok indexování a zpracování dotazů. Pokud se například obsah pole indexoval pomocí analyzátoru jazyka "fr.microsoft", měly by dotazy a kontrola pravopisu používat francouzskou lexikon nebo jazykovou knihovnu nějakého formuláře.

Rekapitulace způsobu použití jazykových knihoven ve službě Azure AI Search:

  • Analyzátory jazyka lze vyvolat během indexování a provádění dotazů a jsou buď Apache Lucene (například "de.lucene") nebo Microsoft ("de.microsoft").

  • Slovníky jazyka vyvolané při kontrole pravopisu se zadají pomocí některého z kódů jazyka v podporované jazykové tabulce.

V požadavku dotazu se hodnota přiřazená queryLanguage vztahuje na speller.

Poznámka:

Konzistence jazyka mezi různými hodnotami vlastností je jen problém, pokud používáte analyzátory jazyka. Pokud používáte analyzátory nezávislé na jazyce (například klíčové slovo, jednoduché, standardní, zarážky, prázdné znaky nebo standardasciifolding.lucene), queryLanguage může být hodnota libovolná.

Obsah v indexu vyhledávání se sice může skládat v několika jazycích, ale vstup dotazu je pravděpodobně v jednom. Vyhledávací web nekontroluje kompatibilitu queryLanguage, analyzátoru jazyka a jazyka, ve kterém se obsah skládá, proto nezapomeňte odpovídajícím způsobem vymezit rozsah dotazů, aby nedocházelo k vytváření nesprávných výsledků.

Další kroky