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).
Filtrowanie wyszukiwania
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
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:
- Zdefiniuj pole z możliwością filtrowania jednego z następujących typów: Edm.GeographyPoint, Collection(Edm.GeographyPoint, Edm.GeographyPolygon).
- Sprawdź, czy dokumenty przychodzące zawierają odpowiednie współrzędne.
- Po zakończeniu indeksowania utwórz zapytanie, które używa filtru i funkcji geoprzestrzeni.
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=2024-07-01
{
"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.