Query's uitvoeren in Azure AI Search

Azure AI Search biedt ondersteuning voor queryconstructies voor een breed scala aan scenario's, van zoeken in vrije tekst tot zeer opgegeven querypatronen, tot vectorzoekopdrachten. Alle query's worden uitgevoerd via een zoekindex waarin doorzoekbare inhoud wordt opgeslagen.

Typen query's

Queryformulier Doorzoekbare inhoud Beschrijving
zoeken in volledige tekst Omgekeerde indexen van tokenized termen. Query's in volledige tekst herhalen over omgekeerde indexen die zijn gestructureerd voor snelle scans, waarbij een overeenkomst kan worden gevonden in mogelijk elk veld, binnen een willekeurig aantal zoekdocumenten. Tekst wordt geanalyseerd en getokeniseerd voor zoeken in volledige tekst.
Vector zoeken Vectorindexen van gegenereerde insluitingen. Vectorquery's herhalen over vectorvelden in een zoekindex.
Hybride zoekopdracht Al het bovenstaande, in één zoekindex. Combineert tekstzoekopdrachten en vectorzoekopdrachten in één queryaanvraag. Tekst zoeken werkt op tekst zonder opmaak in velden 'doorzoekbaar' en 'filterbaar'. Vectorzoekopdrachten werken met inhoud in vectorvelden.
Andere Tekst zonder opmaak en alfanumerieke inhoud. Onbewerkte inhoud, geëxtraheerde exacte bewoordingen uit brondocumenten, ondersteunende filters en patroonkoppelingsquery's zoals geo-ruimtelijke zoekopdrachten, fuzzy zoekopdrachten en zoeken in velden.

In dit artikel wordt de focus verplaatst naar de laatste categorie: query's die werken op tekst zonder opmaak en alfanumerieke inhoud, die intact zijn geëxtraheerd uit de oorspronkelijke bron, worden gebruikt voor filters en andere gespecialiseerde queryformulieren.

Automatisch aanvullen en voorgestelde query's

Automatisch aanvullen of voorgestelde resultaten zijn alternatieven voor search het activeren van opeenvolgende queryaanvragen op basis van gedeeltelijke tekenreeksinvoer (na elk teken) in een zoek-naar-u-type-ervaring. U kunt deze samen of afzonderlijk gebruikenautocomplete, zoals beschreven in dit scenario, maar u kunt ze niet gebruiken met search.suggestions Zowel voltooide termen als voorgestelde query's zijn afgeleid van de indexinhoud. De engine retourneert nooit een tekenreeks of suggestie die niet bestaat in uw index. Zie Automatisch aanvullen (REST API) en Suggesties (REST API) voor meer informatie.

Filters worden veel gebruikt in apps die zijn gebaseerd op Azure AI Search. Op toepassingspagina's worden filters vaak gevisualiseerd als facetten in koppelingsnavigatiestructuren voor door de gebruiker gerichte filters. Filters worden ook intern gebruikt om segmenten van geïndexeerde inhoud beschikbaar te maken. U kunt bijvoorbeeld een zoekpagina initialiseren met behulp van een filter op een productcategorie of een taal als een index velden in zowel het Engels als het Frans bevat.

Mogelijk hebt u filters nodig om een speciaal queryformulier aan te roepen, zoals beschreven in de volgende tabel. U kunt een filter gebruiken met een niet-opgegeven zoekopdracht (search=*) of met een querytekenreeks die termen, woordgroepen, operators en patronen bevat.

Filterscenario Beschrijving
Bereikfilters In Azure AI Search worden bereikquery's gemaakt met behulp van de filterparameter. Zie het voorbeeld van het bereikfilter voor meer informatie en voorbeelden.
Facetnavigatie In de facetnavigatiestructuur kunnen gebruikers facetten selecteren. Wanneer u wordt ondersteund door filters, beperken zoekresultaten zich bij elke klik. Elk facet wordt ondersteund door een filter dat documenten uitsluit die niet meer voldoen aan de criteria van het facet.

Notitie

Tekst die in een filterexpressie wordt gebruikt, wordt niet geanalyseerd tijdens het verwerken van query's. De tekstinvoer wordt verondersteld een hoofdlettergevoelig tekenpatroon te zijn dat slaagt of mislukt bij de overeenkomst. Filterexpressies worden samengesteld met behulp van OData-syntaxis en doorgegeven in een filter parameter in alle filterbare velden in uw index. Zie Filters in Azure AI Search voor meer informatie.

Georuimtelijke zoekovereenkomsten op de breedte- en lengtegraadcoördinaten van een locatie voor zoeken in de buurt of op kaarten gebaseerde zoekervaring. In Azure AI Search kunt u georuimtelijke zoekopdrachten implementeren door de volgende stappen uit te voeren:

Georuimtelijke zoekopdracht maakt gebruik van kilometers voor afstand. Coördinaten worden opgegeven in deze indeling: (longitude, latitude).

Hier volgt een voorbeeld van een filter voor georuimtelijke zoekopdrachten. Met dit filter worden andere Location velden gevonden in de zoekindex met coördinaten binnen een radius van 300 kilometer van het geografische punt (in dit voorbeeld Washington D.C.). Het retourneert adresgegevens in het resultaat en bevat een optionele facets component voor zelfnavigatie op basis van locatie.

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
}

Zie het georuimtelijke zoekvoorbeeld voor meer informatie en voorbeelden.

Document opzoeken

In tegenstelling tot de eerder beschreven queryformulieren haalt deze één zoekdocument op id op, zonder bijbehorende indexzoekopdracht of scan. Er wordt slechts één document aangevraagd en geretourneerd. Wanneer een gebruiker een item in zoekresultaten selecteert, wordt het document opgehaald en een detailpagina met velden ingevuld. Een documentzoekactie is de bewerking die dit ondersteunt.

Geavanceerd zoeken: fuzzy, jokerteken, nabijheid, regex

Een geavanceerd queryformulier is afhankelijk van de full Lucene-parser en operators die een specifiek querygedrag activeren.

Querytype Gebruik Voorbeelden en meer informatie
Zoeken in velden search Parameter queryType=full Bouw een samengestelde query-expressie die gericht is op één veld.
Voorbeeld van zoeken in velden
fuzzy zoekopdracht search Parameter queryType=full Komt overeen met termen met een vergelijkbare constructie of spelling.
Voorbeeld van fuzzy zoekopdracht
nabijheid zoeken search Parameter queryType=full Hiermee vindt u termen die zich in de buurt van elkaar in een document bevinden.
Voorbeeld van nabijheidszoekopdracht
termverhoging search Parameter queryType=full Rangschikt een document hoger als het de boosted term bevat, ten opzichte van anderen die dat niet doen.
Voorbeeld van het stimuleren van termen
reguliere zoekfunctie voor expressies search Parameter queryType=full Komt overeen op basis van de inhoud van een reguliere expressie.
Voorbeeld van reguliere expressie
Jokertekens of voorvoegsel zoeken search parameter met *~ of ?, queryType=full Komt overeen op basis van een voorvoegsel en tilde (~) of één teken (?).
Voorbeeld van zoeken met jokertekens

Volgende stappen

Bekijk de voorbeelden voor elke syntaxis voor een beter overzicht van de implementatie van query's. Als u geen idee hebt van zoeken in volledige tekst, kunt u beter bekijken wat de query-engine doet.