Dotazování ve službě Azure AI Search

Azure AI Search podporuje konstrukty dotazů pro širokou škálu scénářů, od bezplatného textového vyhledávání až po vzory dotazů s vysokou určitou hodnotou až po vektorové vyhledávání. Všechny dotazy se spouštějí přes index vyhledávání, který ukládá prohledávatelný obsah.

Typy dotazů

Formulář dotazu Prohledávatelný obsah Popis
Fulltextové vyhledávání Invertované indexy tokenizovaných termínů Fulltextové dotazy iterují invertované indexy, které jsou strukturované pro rychlé kontroly, kde lze najít shodu v potenciálně libovolném poli v libovolném počtu vyhledávacích dokumentů. Text se analyzuje a tokenizuje pro fulltextové vyhledávání.
Vektorové vyhledávání Vektorové indexy vygenerovaných vkládání Vektorové dotazy iterují vektorová pole v indexu vyhledávání.
Hybridní vyhledávání Všechny výše uvedené položky v jediném indexu vyhledávání. Kombinuje vyhledávání textu a vektorové vyhledávání v jednom požadavku dotazu. Vyhledávání textu funguje na obsahu prostého textu v polích "prohledávatelná" a "filtrovatelná". Vektorové vyhledávání pracuje s obsahem v vektorových polích.
Ostatní Prostý text a alfanumerický obsah Nezpracovaný obsah, extrahovaný doslovný text ze zdrojových dokumentů, podpora filtrů a porovnávání vzorů dotazů, jako je geoprostorové vyhledávání, přibližné vyhledávání a hledání v polích.

Tento článek se zaměřuje na poslední kategorii: dotazy, které pracují s prostým textem a alfanumerickým obsahem, extrahované beze změny z původního zdroje, používané pro filtry a další specializované formuláře dotazů.

Automatické dokončování a navrhované dotazy

Automatické dokončování nebo navrhované výsledky jsou alternativy search , které aktivují po sobě jdoucí požadavky dotazů na základě částečných řetězcových vstupů (za každým znakem) v prostředí pro hledání při psaní. Můžete použít společně nebo suggestions samostatně parametrautocomplete, jak je popsáno v tomto návodu, ale nemůžete je použít s search. Dokončené termíny i navrhované dotazy se odvozují z obsahu indexu. Modul nikdy nevrátí řetězec nebo návrh, který v indexu neexistuje. Další informace najdete v tématu Automatické dokončování (REST API) a návrhy (REST API).

Filtry se běžně používají v aplikacích založených na službě Azure AI Search. Na stránkách aplikace se filtry často vizualizují jako omezující vlastnosti v navigačních strukturách odkazů pro filtrování směrované uživatelem. Filtry se také používají interně k zveřejnění řezů indexovaného obsahu. Vyhledávací stránku můžete například inicializovat pomocí filtru kategorie produktu nebo jazyka, pokud index obsahuje pole v angličtině i francouzštině.

Můžete také potřebovat filtry k vyvolání specializovaného formuláře dotazu, jak je popsáno v následující tabulce. Filtr můžete použít s nespecifikovaným vyhledáváním (search=*) nebo řetězcem dotazu, který obsahuje termíny, fráze, operátory a vzory.

Scénář filtrování Popis
Filtry rozsahů Ve službě Azure AI Search se dotazy na rozsah vytvářejí pomocí parametru filtru. Další informace a příklady najdete v příkladu filtru rozsahu.
Fasetová navigace Ve fasetové navigační struktuře můžou uživatelé vybrat omezující vlastnosti. Při zálohování filtry se výsledky hledání zúží na každém kliknutí. Každá omezující vlastnost je zajištěna filtrem, který vylučuje dokumenty, které už neodpovídají kritériím poskytnutým omezující vlastností.

Poznámka:

Text použitý ve výrazu filtru se během zpracování dotazu neanalyzuje. U textového vstupu se předpokládá, že se jedná o doslovný vzor znaků s rozlišováním velkých a malých písmen, který buď proběhne úspěšně, nebo selže ve shodě. Výrazy filtru se vytvářejí pomocí syntaxe OData a předávají se v parametru filter ve všech filtrovatelných polích v indexu. Další informace najdete v tématu Filtry ve službě Azure AI Search.

Geoprostorové vyhledávání odpovídá souřadnicím zeměpisné šířky a délky umístění pro hledání "najít poblíž" nebo mapového vyhledávání. Ve službě Azure AI Search můžete geoprostorové vyhledávání implementovat pomocí následujícího postupu:

Geoprostorové vyhledávání používá kilometry pro vzdálenost. Souřadnice jsou zadány v tomto formátu: (longitude, latitude).

Tady je příklad filtru pro geoprostorové vyhledávání. Tento filtr najde další Location pole v indexu vyhledávání, která mají souřadnice v okruhu 300 kilometrů od zeměpisného bodu (v tomto příkladu Washington D.C.). Vrátí ve výsledku informace o adrese a obsahuje volitelnou facets klauzuli pro samoobslužnou navigaci na základě umístění.

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
}

Další informace a příklady najdete v příkladu geoprostorové vyhledávání.

Vyhledávání dokumentu

Na rozdíl od dříve popsaných formulářů dotazu tento formulář načte jeden vyhledávací dokument podle ID bez odpovídajícího vyhledávání nebo prohledávání indexu. Vyžaduje se a vrátí pouze jeden dokument. Když uživatel vybere položku ve výsledcích hledání, načtení dokumentu a naplnění stránky podrobností poli je typická odpověď a vyhledávání dokumentu je operace, která ji podporuje.

Rozšířené vyhledávání: přibližný, zástupný znak, blízkost, regulární výraz

Rozšířený formulář dotazu závisí na úplném analyzátoru Lucene a operátorech, které aktivují konkrétní chování dotazu.

Typ dotazu Využití Příklady a další informace
Hledání podle polí search Parametr queryType=full Vytvořte složený výraz dotazu, který cílí na jedno pole.
Příklad hledání v poli
Přibližné hledání search Parametr queryType=full Shoduje se s termíny, které mají podobnou konstrukci nebo pravopis.
Příklad vyhledávání přibližných shod
hledání bezkontaktní komunikace search Parametr queryType=full Najde termíny, které jsou v dokumentu blízko sebe.
Příklad hledání bezkontaktní komunikace
posílení termínu search Parametr queryType=full Dokument seřadí do vyššího pořadí, pokud obsahuje zesílený termín vzhledem k ostatním, kteří ne.
Příklad zvýšení termínu
hledání regulárních výrazů search Parametr queryType=full Odpovídá na základě obsahu regulárního výrazu.
Příklad regulárního výrazu
Vyhledávání zástupných znaků nebo předpon search parametrem *~ nebo ?, queryType=full Odpovídá na základě předpony a vlnovek (~) nebo jednoho znaku (?).
Příklad hledání pomocí zástupných znaků

Další kroky

Podrobnější pohled na implementaci dotazů najdete v příkladech pro každou syntaxi. Pokud s fulltextovým vyhledáváním začínáte, podívejte se blíže na to, co dotazovací modul dělá, stejně dobrou volbou.