Wykonywanie zapytań w usłudze Azure AI Search

Usługa Azure AI Search obsługuje konstrukcje zapytań dla szerokiego zakresu scenariuszy— od wyszukiwania tekstu w dowolnej formie po wysoce określone wzorce zapytań po wyszukiwanie wektorowe. Wszystkie zapytania są wykonywane za pośrednictwem indeksu wyszukiwania, który przechowuje zawartość z możliwością wyszukiwania.

Typy zapytań

Formularz zapytania Zawartość z możliwością wyszukiwania opis
wyszukiwanie pełnotekstowe Odwrócone indeksy terminów tokenizowanych. Zapytania pełnotekstowe iterują nad odwróconymi indeksami, które są ustrukturyzowane w celu szybkiego skanowania, gdzie dopasowanie można znaleźć w potencjalnie dowolnym polu w dowolnej liczbie dokumentów wyszukiwania. Tekst jest analizowany i tokenizowany na potrzeby wyszukiwania pełnotekstowego.
Wyszukiwanie wektorowe Indeksy wektorów wygenerowanego osadzania. Zapytania wektorowe iterują w polach wektorów w indeksie wyszukiwania.
Wyszukiwanie hybrydowe Wszystkie powyższe elementy w jednym indeksie wyszukiwania. Łączy wyszukiwanie tekstu i wyszukiwanie wektorów w jednym żądaniu zapytania. Wyszukiwanie tekstu działa w przypadku zawartości zwykłego tekstu w polach "z możliwością wyszukiwania" i "filtrowalnych". Wyszukiwanie wektorowe działa na zawartości w polach wektorowych.
Inne Zwykły tekst i zawartość alfanumeryczna. Nieprzetworzona zawartość, wyodrębniona z dokumentów źródłowych, obsługująca filtry i zapytania pasujące do wzorca, takie jak wyszukiwanie geograficzne, wyszukiwanie rozmyte i wyszukiwanie pól.

Ten artykuł koncentruje się na ostatniej kategorii: zapytania, które działają na zwykły tekst i zawartość alfanumeryczną, wyodrębnione bez zmian z oryginalnego źródła, używane do filtrowania i innych wyspecjalizowanych formularzy zapytań.

Autouzupełnianie i sugerowane zapytania

Autouzupełnianie lub sugerowane wyniki to alternatywy dla search wyzwalania kolejnych żądań zapytań na podstawie częściowych danych wejściowych ciągu (po każdym znaku) w środowisku wyszukiwania zgodnie z rzeczywistym typem. Można używać autocomplete parametrów i razem suggestions lub oddzielnie, zgodnie z opisem w tym przewodniku, ale nie można ich używać z elementem search. Zarówno ukończone terminy, jak i sugerowane zapytania pochodzą z zawartości indeksu. Aparat nigdy nie zwraca ciągu lub sugestii, która nie istnieje w indeksie. Aby uzyskać więcej informacji, zobacz Autouzupełnianie (interfejs API REST) i Sugestie (interfejs API REST).

Filtry są powszechnie używane w aplikacjach opartych na usłudze Azure AI Search. Na stronach aplikacji filtry są często wizualizowane jako aspekty w strukturach nawigacji linków na potrzeby filtrowania kierowanego przez użytkownika. Filtry są również używane wewnętrznie do uwidaczniania fragmentów indeksowanej zawartości. Na przykład można zainicjować stronę wyszukiwania przy użyciu filtru w kategorii produktów lub języka, jeśli indeks zawiera pola w języku angielskim i francuskim.

Może być również konieczne wywołanie wyspecjalizowanego formularza zapytania zgodnie z opisem w poniższej tabeli. Możesz użyć filtru z nieokreślonym wyszukiwaniem (search=*) lub ciągiem zapytania zawierającym terminy, frazy, operatory i wzorce.

Scenariusz filtrowania opis
Filtry zakresu W usłudze Azure AI Search zapytania zakresu są tworzone przy użyciu parametru filtru. Aby uzyskać więcej informacji i przykładów, zobacz Przykład filtru zakresu.
Nawigacja aspektowa W drzewie nawigacji aspektowej użytkownicy mogą wybierać aspekty. Po utworzeniu kopii zapasowej według filtrów wyniki wyszukiwania są wąskie po każdym kliknięciu. Każdy aspekt jest wspierany przez filtr, który wyklucza dokumenty, które nie są już zgodne z kryteriami dostarczonymi przez aspekt.

Uwaga

Tekst używany w wyrażeniu filtru nie jest analizowany podczas przetwarzania zapytań. Przyjmuje się, że wprowadzanie tekstu jest wzorcem znaków z dosłownym uwzględnieniem wielkości liter, który kończy się powodzeniem lub niepowodzeniem w dopasowaniu. Wyrażenia filtru są tworzone przy użyciu składni OData i przekazywane w parametrze filter we wszystkich polach możliwych do filtrowania w indeksie. Aby uzyskać więcej informacji, zobacz Filtry w usłudze Azure AI Search.

Wyszukiwanie geoprzestrzenne jest zgodne ze współrzędnymi szerokości i długości geograficznej lokalizacji dla środowiska wyszukiwania opartego na mapie lub "znajdź w pobliżu mnie". W usłudze Azure AI Search można zaimplementować wyszukiwanie geoprzestrzenne, wykonując następujące kroki:

Wyszukiwanie geoprzestrzenne używa kilometrów na odległość. Współrzędne są określone w tym formacie: (longitude, latitude).

Oto przykład filtru wyszukiwania geoprzestrzennego. Ten filtr znajduje inne Location pola w indeksie wyszukiwania, które mają współrzędne w promieniu 300 kilometrów punktu geograficznego (w tym przykładzie Waszyngton). Zwraca informacje o adresie w wyniku i zawiera opcjonalną facets klauzulę na potrzeby samodzielnej nawigacji na podstawie lokalizacji.

POST https://{{searchServiceName}}.search.windows.net/indexes/hotels-vector-quickstart/docs/search?api-version=2023-07-01-Preview
{
    "count": true,
    "search": "*",
    "filter": "geo.distance(Location, geography'POINT(-77.03241 38.90166)') le 300",
    "facets": [ "Address/StateProvince"],
    "select": "HotelId, HotelName, Address/StreetAddress, Address/City, Address/StateProvince",
    "top": 7
}

Aby uzyskać więcej informacji i przykładów, zobacz Przykład wyszukiwania geoprzestrzenowego.

Wyszukiwanie dokumentu

W przeciwieństwie do wcześniej opisanych formularzy zapytań ten pobiera pojedynczy dokument wyszukiwania według identyfikatora, bez odpowiedniego wyszukiwania indeksu ani skanowania. Tylko jeden dokument jest żądany i zwracany. Gdy użytkownik wybierze element w wynikach wyszukiwania, pobranie dokumentu i wypełnienie strony szczegółów polami jest typową odpowiedzią, a wyszukiwanie dokumentu jest operacją, która ją obsługuje.

Wyszukiwanie zaawansowane: rozmyte, wieloznaczne, zbliżeniowe, regex

Zaawansowany formularz zapytania zależy od analizatora Full Lucene i operatorów, które wyzwalają określone zachowanie zapytania.

Typ zapytania Użycie Przykłady i więcej informacji
Wyszukiwanie w polu search Parametr queryType=full Utwórz złożone wyrażenie zapytania przeznaczone dla pojedynczego pola.
Przykład wyszukiwania w polu
Wyszukiwanie rozmyte search Parametr queryType=full Mecze na warunkach o podobnej konstrukcji lub pisowni.
Przykład wyszukiwania rozmytego
wyszukiwanie zbliżeniowe search Parametr queryType=full Znajduje terminy, które znajdują się blisko siebie w dokumencie.
Przykład wyszukiwania w pobliżu
zwiększanie terminów search Parametr queryType=full Plasuje dokument wyżej, jeśli zawiera wzmocniony termin, względem innych, które nie.
Przykład zwiększania terminu
wyszukiwanie wyrażeń regularnych search Parametr queryType=full Dopasowywane na podstawie zawartości wyrażenia regularnego.
Przykład wyrażenia regularnego
wyszukiwanie symboli wieloznacznych lub prefiksów search parametr z *~ lub ?, queryType=full Dopasowywania na podstawie prefiksu i tyldy (~) lub pojedynczego znaku (?).
Przykład wyszukiwania z symbolami wieloznacznymi

Następne kroki

Aby przyjrzeć się bliżej implementacji zapytań, zapoznaj się z przykładami dla każdej składni. Jeśli dopiero zaczynasz wyszukiwanie pełnotekstowe, przyjrzyj się bliżej temu, co robi aparat zapytań, może być równie dobrym wyborem.