Dodawanie sprawdzania pisowni do zapytań w usłudze Azure AI Search
Ważne
Korekta pisowni jest dostępna w publicznej wersji zapoznawczej w ramach dodatkowych warunków użytkowania. Jest ona dostępna za pośrednictwem witryny Azure Portal, interfejsów API REST w wersji zapoznawczej i wersji beta bibliotek zestawu Azure SDK.
Kompletność można poprawić, poprawiając pisownię w zapytaniu przed dotarciem do wyszukiwarki. Parametr speller
jest obsługiwany dla wszystkich typów zapytań tekstowych (niewektorowych).
Wymagania wstępne
Usługa wyszukiwania w warstwie Podstawowa lub nowsza w dowolnym regionie.
Istniejący indeks wyszukiwania z zawartością w obsługiwanym języku.
Żądanie zapytania zawierające
speller=lexicon
iqueryLanguage
ustawione na obsługiwany język. Sprawdzanie pisowni działa na ciągach przekazanych w parametrzesearch
. Nie jest obsługiwany w przypadku filtrów, wyszukiwania rozmytego, wyszukiwania wieloznacznych, wyrażeń regularnych ani zapytań wektorowych.
Użyj klienta wyszukiwania, który obsługuje interfejsy API w wersji zapoznawczej w żądaniu zapytania. Możesz użyć klienta REST lub wersji beta zestawów SDK platformy Azure.
Biblioteka kliencka | Wersje |
---|---|
Interfejs API REST | Wersje 2020-06-30-Preview i nowsze. Zalecamy najnowszą wersję zapoznawcza interfejsu API. 2024-05-01-preview |
Zestaw Azure SDK dla platformy .NET | wersja 11.5.0-beta.5 |
Zestaw Azure SDK dla języka Java | wersja 11.6.0-beta.5 |
Zestaw Azure SDK dla języka JavaScript | wersja 11.3.0-beta.8 |
Zestaw Azure SDK dla środowiska Python | wersja 11.4.0b3 |
Korekta pisowni przy użyciu prostego wyszukiwania
W poniższym przykładzie użyto wbudowanego indeksu hotels-sample, aby zademonstrować korektę pisowni w prostym zapytaniu tekstowym. Bez korekty pisowni zapytanie zwraca zero wyników. Z korektą zapytanie zwraca jeden wynik dla ośrodka zorientowanego na rodzinę 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
}
Korekta pisowni z pełnym Lucene
Korekta pisowni występuje na poszczególnych terminach zapytania, które przechodzą analizę tekstu, dlatego można użyć parametru sprawdzania pisowni z niektórymi zapytaniami Lucene, ale nie innymi.
- Niezgodne formularze zapytań, które pomijają analizę tekstu, obejmują: symbol wieloznaczny, regex, rozmyty
- Zgodne formularze zapytań obejmują: wyszukiwanie pól, bliskość, zwiększanie terminów
W tym przykładzie użyto wyszukiwania w polu Kategoria z pełną składnią Lucene i błędnie napisanym terminem zapytania. Dzięki włączeniu pisowni literówka w poleceniu "Suiite" zostanie poprawiona i zapytanie zakończy się powodzeniem.
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
}
Korekta pisowni z klasyfikacją semantyczną
To zapytanie, z literówkami w każdym okresie, z wyjątkiem jednego, przechodzi poprawki pisowni w celu zwrócenia odpowiednich wyników. Aby dowiedzieć się więcej, zobacz Konfigurowanie klasyfikatora semantycznego.
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
}
Obsługiwane języki
Prawidłowe wartości queryLanguage
można znaleźć w poniższej tabeli skopiowanej z listy obsługiwanych języków (dokumentacja interfejsu API REST)..
Język | queryLanguage |
---|---|
Angielski [EN] | EN, EN-US (ustawienie domyślne) |
Hiszpański [ES] | ES, ES-ES (ustawienie domyślne) |
Francuski [FR] | FR, FR-FR (ustawienie domyślne) |
Niemiecki [DE] | DE, DE-DE (ustawienie domyślne) |
Holenderski [NL] | NL, NL-BE, NL-NL (ustawienie domyślne) |
Uwaga
Wcześniej, podczas gdy semantyczny ranger był w publicznej wersji zapoznawczej, queryLanguage
parametr był również używany do klasyfikacji semantycznej. Ranga semantyczna jest teraz niezależna od języka.
Zagadnienia dotyczące analizatora języka
Indeksy zawierające zawartość inną niż angielska często używają analizatorów języków w polach innych niż angielski, aby zastosować reguły językowe języka natywnego.
Podczas dodawania sprawdzania pisowni do zawartości, która również przechodzi analizę języka, można uzyskać lepsze wyniki przy użyciu tego samego języka dla każdego kroku indeksowania i przetwarzania zapytań. Jeśli na przykład zawartość pola została zindeksowana przy użyciu analizatora języka "fr.microsoft", zapytania i sprawdzanie pisowni powinny używać francuskiego leksykonu lub biblioteki językowej jakiejś formy.
Aby podsumować sposób użycia bibliotek językowych w usłudze Azure AI Search:
Analizatory języka mogą być wywoływane podczas indeksowania i wykonywania zapytań oraz są apache Lucene (na przykład "de.lucene") lub Microsoft ("de.microsoft).
Leksykony języka wywoływane podczas sprawdzania pisowni są określane przy użyciu jednego z kodów języka w tabeli obsługiwanych języków .
W żądaniu zapytania wartość przypisana do queryLanguage
elementu ma zastosowanie do speller
elementu .
Uwaga
Spójność języka w różnych wartościach właściwości jest problemem tylko wtedy, gdy używasz analizatorów języka. Jeśli używasz analizatorów niezależnie od języka (takich jak słowo kluczowe, proste, standardowe, zatrzymanie, odstępy lub standardasciifolding.lucene
), queryLanguage
wartość może być dowolna.
Podczas gdy zawartość w indeksie wyszukiwania może składać się w wielu językach, dane wejściowe zapytania są najprawdopodobniej w jednym. Wyszukiwarka nie sprawdza zgodności analizatora queryLanguage
języka i języka, w którym składa się zawartość, dlatego należy odpowiednio ograniczyć zakres zapytań, aby uniknąć generowania nieprawidłowych wyników.