Lägga till stavningskontroll i frågor i Azure AI Search
Viktigt
Stavningskorrigering är i offentlig förhandsversion under kompletterande användningsvillkor. Den är tillgänglig via Azure Portal, förhandsversioner av REST API:er och betaversioner av Azure SDK-bibliotek.
Du kan förbättra återkallandet genom att stavningskorrigeringsord i en fråga innan de når sökmotorn. Parametern speller
stöds för alla textfrågetyper (icke-vektor).
En söktjänst på Basic-nivån eller högre, i valfri region.
Ett befintligt sökindex med innehåll på ett språk som stöds.
En frågebegäran som har
speller=lexicon
ochqueryLanguage
är inställd på ett språk som stöds. Stavningskontroll fungerar på strängar som skickas i parameternsearch
. Det stöds inte för filter, fuzzy-sökning, jokerteckensökning, reguljära uttryck eller vektorfrågor.
Använd en sökklient som stöder förhandsversions-API:er i frågebegäran. Du kan använda en REST-klient eller betaversioner av Azure SDK:er.
Klientbibliotek | Versioner |
---|---|
REST-API | Versioner 2020-06-30-Preview och senare. Vi rekommenderar det senaste förhandsversions-API:et. Förhandsversion 2024-05-01 |
Azure SDK för .NET | version 11.5.0-beta.5 |
Azure SDK för Java | version 11.6.0-beta.5 |
Azure SDK för Java Script | version 11.3.0-beta.8 |
Azure SDK för Python | version 11.4.0b3 |
I följande exempel används det inbyggda hotels-sample-indexet för att demonstrera stavningskorrigering i en enkel textfråga. Utan stavningskorrigering returnerar frågan noll resultat. Med korrigering returnerar frågan ett resultat för Johnsons familjeorienterade resort.
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
}
Stavningskorrigering sker på enskilda frågetermer som genomgår textanalys, varför du kan använda stavningsparametern med vissa Lucene-frågor, men inte andra.
- Inkompatibla frågeformulär som kringgår textanalys är: jokertecken, regex, fuzzy
- Kompatibla frågeformulär är: fältsökning, närhet, termförstärkning
I det här exemplet används fältsökning över fältet Kategori, med fullständig Lucene-syntax och en felstavad frågeterm. Genom att inkludera stavningsfel korrigeras stavfelet i "Suiite" och frågan lyckas.
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
}
Den här frågan, med stavfel i varje term utom en, genomgår stavningskorrigeringar för att returnera relevanta resultat. Mer information finns i Konfigurera semantisk ranker.
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
}
Giltiga värden för queryLanguage
finns i följande tabell, kopierade från listan över språk som stöds (REST API-referens).
Språk | queryLanguage |
---|---|
Engelska [EN] | EN, EN-US (standard) |
Spanska [ES] | ES, ES-ES (standard) |
Franska [FR] | FR, FR-FR (standard) |
Tyska [DE] | DE, DE-DE (standard) |
Nederländska [NL] | NL, NL-BE, NL-NL (standard) |
Anteckning
Tidigare, medan semantisk ranker var i offentlig förhandsversion, användes parametern queryLanguage
också för semantisk rangordning. Semantisk ranker är nu språkagnostisk.
Index som innehåller icke-engelskt innehåll använder ofta språkanalysverktyg på icke-engelska fält för att tillämpa språkreglerna för det inbyggda språket.
När du lägger till stavningskontroll i innehåll som också genomgår språkanalys kan du uppnå bättre resultat med samma språk för varje indexerings- och frågebearbetningssteg. Om ett fälts innehåll till exempel indexerades med hjälp av språkanalysatorn "fr.microsoft" bör frågor och stavningskontroll alla använda ett franskt lexikon eller språkbibliotek i något formulär.
Så här sammanfattar du hur språkbibliotek används i Azure AI Search:
Språkanalysverktyg kan anropas under indexering och frågekörning och är antingen Apache Lucene (till exempel "de.lucene") eller Microsoft ("de.microsoft).
Språklexikon som anropas under stavningskontroll anges med någon av språkkoderna i språktabellen som stöds.
I en frågebegäran gäller värdet som tilldelats till queryLanguage
för speller
.
Anteckning
Språkkonsekvens mellan olika egenskapsvärden är bara ett problem om du använder språkanalysverktyg. Om du använder språkagnostiska analysverktyg (till exempel nyckelord, enkel, standard, stopp, blanksteg eller standardasciifolding.lucene
), queryLanguage
kan värdet vara vad du vill.
Även om innehåll i ett sökindex kan bestå av flera språk är frågeindata troligtvis i ett. Sökmotorn söker inte efter kompatibiliteten queryLanguage
för , språkanalyseraren och språket där innehållet består, så se till att omfångsfrågorna omfångsbegränsas för att undvika felaktiga resultat.