Dela via


Köra frågor i Azure AI Search

Azure AI Search stöder frågekonstruktioner för ett brett spektrum av scenarier, från textsökning i fritt format till högt angivna frågemönster till vektorsökning. Alla frågor körs över ett sökindex som lagrar sökbart innehåll.

Typer av frågor

Frågeformulär Sökbart innehåll beskrivning
fulltextsökning Inverterade index för tokeniserade termer. Fulltextfrågor itererar över inverterade index som är strukturerade för snabba genomsökningar, där en matchning kan hittas i potentiellt valfritt fält, inom valfritt antal sökdokument. Text analyseras och tokeniseras för fulltextsökning.
Vektorsökning Vektorindex för genererade inbäddningar. Vektorfrågor itererar över vektorfält i ett sökindex.
Hybridsökning Allt ovanstående, i ett enda sökindex. Kombinerar textsökning och vektorsökning i en enda frågebegäran. Textsökning fungerar på oformaterad text i fälten "sökbar" och "filterbar". Vektorsökning fungerar på innehåll i vektorfält.
Andra Oformaterad text och alfanumeriskt innehåll. Råinnehåll, extraherat ordagrant från källdokument, stödfilter och mönstermatchningsfrågor som geo-spatial sökning, fuzzy-sökning och fältsökning.

Den här artikeln fokuserar på den sista kategorin: frågor som fungerar med oformaterad text och alfanumeriskt innehåll, extraherade intakta från den ursprungliga källan, som används för filter och andra specialiserade frågeformulär.

Komplettera automatiskt och föreslagna frågor

Automatisk komplettering eller föreslagna resultat är alternativ till search att utlösa efterföljande frågebegäranden baserat på partiella strängindata (efter varje tecken) i en sök-som-du-typ-upplevelse. Du kan använda autocomplete och suggestions parametern tillsammans eller separat, enligt beskrivningen i den här genomgången, men du kan inte använda dem med search. Både slutförda termer och föreslagna frågor härleds från indexinnehållet. Motorn returnerar aldrig en sträng eller ett förslag som inte finns i indexet. Mer information finns i Komplettera automatiskt (REST API) och Förslag (REST API).

Filter används ofta i appar som baseras på Azure AI Search. På programsidor visualiseras filter ofta som fasetter i länknavigeringsstrukturer för användarstyrd filtrering. Filter används också internt för att exponera segment av indexerat innehåll. Du kan till exempel initiera en söksida med hjälp av ett filter för en produktkategori eller ett språk om ett index innehåller fält på både engelska och franska.

Du kan också behöva filter för att anropa ett specialiserat frågeformulär enligt beskrivningen i följande tabell. Du kan använda ett filter med en ospecificerad sökning (search=*) eller med en frågesträng som innehåller termer, fraser, operatorer och mönster.

Filterscenario beskrivning
Intervallfilter I Azure AI Search skapas intervallfrågor med filterparametern. Mer information och exempel finns i Exempel på intervallfilter.
Aspektbaserad navigering I fasetterat navigeringsträd kan användarna välja fasetter. När du backas upp av filter begränsas sökresultaten vid varje klick. Varje aspekt backas upp av ett filter som exkluderar dokument som inte längre matchar kriterierna som tillhandahålls av aspekten.

Kommentar

Text som används i ett filteruttryck analyseras inte under frågebearbetningen. Textinmatningen antas vara ett ordagrant skiftlägeskänsligt teckenmönster som antingen lyckas eller misslyckas med matchningen. Filteruttryck konstrueras med OData-syntax och skickas i en filter parameter i alla filterbara fält i ditt index. Mer information finns i Filter i Azure AI Search.

Geospatial sökning matchar på en plats latitud- och longitudkoordinater för "hitta nära mig" eller kartbaserad sökupplevelse. I Azure AI Search kan du implementera geospatial sökning genom att följa dessa steg:

Geospatial sökning använder kilometer för avstånd. Koordinater anges i det här formatet: (longitude, latitude).

Här är ett exempel på ett filter för geospatial sökning. Det här filtret hittar andra Location fält i sökindexet som har koordinater inom en radie på 300 kilometer från geografipunkten (i det här exemplet Washington D.C.). Den returnerar adressinformation i resultatet och innehåller en valfri facets sats för självnavigering baserat på plats.

POST https://{{searchServiceName}}.search.windows.net/indexes/hotels-vector-quickstart/docs/search?api-version=2024-05-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
}

Mer information och exempel finns i Exempel på geospatial sökning.

Dokumentsökning

I motsats till de tidigare beskrivna frågeformulären hämtar den här ett enda sökdokument efter ID, utan motsvarande indexsökning eller genomsökning. Endast ett dokument begärs och returneras. När en användare väljer ett objekt i sökresultat är det ett typiskt svar att hämta dokumentet och fylla i en informationssida med fält, och en dokumentsökning är den åtgärd som stöder det.

Avancerad sökning: fuzzy, jokertecken, närhet, regex

Ett avancerat frågeformulär beror på den fullständiga Lucene-parsaren och operatorerna som utlöser ett specifikt frågebeteende.

Frågetyp Användning Exempel och mer information
Fältsökning search Parametern queryType=full Skapa ett sammansatt frågeuttryck som riktar sig till ett enda fält.
Exempel på fältsökning
fuzzy-sökning search Parametern queryType=full Matchar på villkor som har en liknande konstruktion eller stavning.
Fuzzy-sökexempel
närhetssökning search Parametern queryType=full Hittar termer som är nära varandra i ett dokument.
Exempel på närhetssökning
termstär search Parametern queryType=full Rangordnar ett dokument högre om det innehåller den boostade termen i förhållande till andra som inte gör det.
Exempel på termstädning
sökning efter reguljära uttryck search Parametern queryType=full Matchar baserat på innehållet i ett reguljärt uttryck.
Exempel på reguljära uttryck
jokertecken eller prefixsökning search parameter med *~ eller ?, queryType=full Matchar baserat på ett prefix och tilde (~) eller ett enda tecken (?).
Sökexempel för jokertecken

Nästa steg

En närmare titt på frågeimplementeringen finns i exemplen för varje syntax. Om du är nybörjare på fulltextsökning kan en närmare titt på vad frågemotorn gör vara ett lika bra val.