Delen via


Documenten zoeken (preview-REST API)

is van toepassing op: 2023-07-01-Preview. Deze versie wordt niet meer ondersteund. upgrade onmiddellijk naar een nieuwere versie.

Belangrijk

2023-07-01-Preview voegt toe:

  • vectoren queryparameter die eventuele vectorqueryaanvragen opgeeft. Elk object moet de vectorweergave van de query, het k-aantal dichtstbijzijnde buren bevatten dat in de resultaten moet worden geretourneerd en de vectorvelden die moeten worden gebruikt tijdens het uitvoeren van de query.

2021-04-30-Preview voegt toe:

  • 'semanticConfiguration' ondersteunt semantische rangschikking in specifieke velden.
  • 'bijschriften' retourneert woordgroepen die zijn geëxtraheerd uit belangrijke passages in de hoogste semantisch gerangschikte documenten.

2020-06-30-Preview voegt toe:

  • 'queryType=semantic' biedt ondersteuning voor semantische rerankering en antwoorden.
  • 'searchFields' in een semantische query bepaalt de prioriteitsvolgorde van velden die worden gebruikt om bijschriften en antwoorden te formuleren. Deze methode is vervangen door 'semanticConfiguration' in 2021-04-30-Preview en is nu verouderd.
  • 'spellingcontrole' kunt u spellingcorrectie inschakelen voor query-invoer.
  • 'queryLanguage' is vereist voor zowel 'queryType=semantic' als 'speller'.
  • 'featuresMode' een zoekscore uitpakt, rapporteert over de termfrequentie per veld, de overeenkomstscore per veld en het aantal unieke overeenkomsten per veld.

Een queryaanvraag is gericht op het verzamelen van documenten van één index in een zoekservice. Het bevat parameters die de criteria voor overeenkomst definiëren en parameters die het antwoord vormgeven. U kunt ook een indexalias gebruiken om een bepaalde index te richten in plaats van de indexnaam zelf te gebruiken.

U kunt GET of POST gebruiken voor de meeste query's, maar u moet POST gebruiken voor vectorzoekopdrachten omdat vectorqueryparameters niet binnen een URI passen. Queryparameters zijn opgegeven in de querytekenreeks voor GET-aanvragen en in de aanvraagbody voor POST-aanvragen.

GET https://[service name].search.windows.net/indexes/[index name]/docs?[query parameters] 
  Content-Type: application/json   
  api-key: [admin or query key]  

Als u POST gebruikt, voegt u de actie 'zoeken' toe als een URI-parameter.

POST https://[service name].search.windows.net/indexes/[index name]/docs/search?api-version=[api-version]  
  Content-Type: application/json  
  api-key: [admin or query key]  

Wanneer de aanvraag-URL wordt aangeroepen met GET, mag de lengte van de aanvraag-URL niet groter zijn dan 8 kB. Deze lengte is voldoende voor de meeste toepassingen. Sommige toepassingen produceren echter grote query's, met name wanneer OData-filterexpressies worden gebruikt. Voor deze toepassingen is HTTP POST een betere keuze omdat het grotere filters toestaat dan GET.

Met POST is het aantal componenten in een filter de beperkende factor, niet de grootte van de onbewerkte filtertekenreeks, omdat de aanvraaggroottelimiet voor POST ongeveer 16 MB is. Hoewel de limiet voor de POST-aanvraaggrootte groot is, kunnen filterexpressies niet willekeurig complex zijn. Zie OData Expression Syntaxis voor Azure AI Searchvoor meer informatie over beperkingen van filtercomplexiteit.

URI-parameters

Parameter Beschrijving
servicenaam Vereist. Stel deze naam in op de unieke, door de gebruiker gedefinieerde naam van uw zoekservice.
indexnaam/documenten Vereist. Hiermee geeft u de verzameling documenten van een benoemde index. De naam van een indexalias kan ook worden gebruikt in plaats van de indexnaam.
queryparameters Queryparameters worden opgegeven in de URI voor GET-aanvragen en in de aanvraagbody voor POST-aanvragen.
api-version Vereist. Zie API-versies voor meer versies.

Aanbevelingen voor URL-codering

Vergeet niet om URL-codering specifieke queryparameters aan te roepen bij het rechtstreeks aanroepen van de GET REST API. Voor een bewerking Documenten zoeken, kan URL-codering nodig zijn voor de volgende queryparameters:

  • zoeken
  • $filter
  • facet
  • highlightPreTag
  • highlightPostTag

URL-codering wordt alleen aanbevolen voor afzonderlijke parameters. Als u per ongeluk de volledige querytekenreeks (alles na de ?) url-codering gebruikt, worden aanvragen verbroken.

Url-codering is ook alleen nodig wanneer u de REST API rechtstreeks aanroept met behulp van GET. Er is geen URL-codering nodig bij het gebruik van POST of bij het gebruik van de Azure AI Search .NET-clientbibliotheek, die codering voor u afhandelt.

Aanvraagheaders

In de volgende tabel worden de vereiste en optionele aanvraagheaders beschreven.

Velden Beschrijving
Inhoudstype Vereist. Stel deze waarde in op 'application/json'
api-key Optioneel als u Azure-rollen gebruikt en er een bearer-token wordt opgegeven in de aanvraag, anders is een sleutel vereist. Een API-sleutel is een unieke, door het systeem gegenereerde tekenreeks waarmee de aanvraag wordt geverifieerd bij uw zoekservice. Queryaanvragen voor de documentenverzameling kunnen een beheerderssleutel of querysleutel opgeven als de API-sleutel. De querysleutel wordt gebruikt voor bewerkingen met het kenmerk Alleen-lezen voor de documentenverzameling. Zie Verbinding maken met Azure AI Search met behulp van sleutelverificatie voor meer informatie.

Hoofdtekst van aanvraag

Voor GET: Geen.

Voor POST:

{  
     "answers": "none" (default) | "extractive", 
     "count": true | false (default),
     "captions": "none" (default) | "extractive",
     "facets": [ "facet_expression_1", "facet_expression_2", ... ],  
     "featuresMode" : "disabled" (default) | "enabled",
     "filter": "odata_filter_expression",  
     "highlight": "highlight_field_1, highlight_field_2, ...",  
     "highlightPreTag": "pre_tag",  
     "highlightPostTag": "post_tag",  
     "minimumCoverage": # (% of index that must be covered to declare query successful; default 100),  
     "orderby": "orderby_expression",
     "queryLanguage": "en-us" (default) | (a supported language code), 
     "queryType": "simple" (default) | "full" | "semantic",
     "scoringParameters": [ "scoring_parameter_1", "scoring_parameter_2", ... ],  
     "scoringProfile": "scoring_profile_name",  
     "scoringStatistics" : "local" (default) | "global",
     "search": "simple_query_expression",  
     "searchFields": "field_name_1, field_name_2, ...",  
     "searchMode": "any" (default) | "all",  
     "select": "field_name_1, field_name_2, ...",  
     "semanticConfiguration": "semantic_configuration_name",
     "sessionId" : "session_id",
     "skip": # (default 0), 
     "speller": "none" (default) | "lexicon",  
     "top": #,
     "vectors": [
      {
        "value": "a vector representation of the query",
        "k": an integer (number of nearest neighbors to return as top results),
        "fields": "a comma-delimited list of vector fields to use in the query"
      }
     ]
   }  

vervolg van antwoorden op gedeeltelijke zoekopdrachten

Soms kan Azure AI Search niet alle aangevraagde resultaten retourneren in één search-antwoord. Een gedeeltelijke reactie kan om verschillende redenen optreden, bijvoorbeeld wanneer de query te veel documenten retourneert door geen $top op te geven of door een waarde op te geven voor $ top die te groot is. In dergelijke gevallen bevat Azure AI Search de @odata.nextLink aantekening in de hoofdtekst van het antwoord en @search.nextPageParameters als het een POST-aanvraag was. U kunt de waarden van deze aantekeningen gebruiken om een andere zoekopdracht te formuleren om het volgende deel van het zoekantwoord op te halen. Dit gedrag wordt een vervolg van de oorspronkelijke zoekopdracht genoemd en de aantekeningen worden vervolgtokensgenoemd. Zie het voorbeeld in de sectie Antwoord voor meer informatie over de syntaxis van deze aantekeningen en waar deze worden weergegeven in de hoofdtekst van het antwoord.

De redenen waarom Azure AI Search vervolgtokens kan retourneren, zijn implementatiespecifiek en kunnen worden gewijzigd. Robuuste clients moeten altijd klaar zijn voor het afhandelen van gevallen waarin minder documenten worden geretourneerd dan verwacht en een vervolgtoken is opgenomen om door te gaan met het ophalen van documenten. Houd er ook rekening mee dat u dezelfde HTTP-methode moet gebruiken als de oorspronkelijke aanvraag om door te gaan. Als u bijvoorbeeld een GET-aanvraag hebt verzonden, moeten alle vervolgaanvragen die u verzendt ook GET gebruiken (en ook voor POST).

Notitie

Het doel van @odata.nextLink en @search.nextPageParameters is om de service te beschermen tegen query's die te veel resultaten aanvragen, niet om een algemeen mechanisme voor paging te bieden. Als u resultaten wilt bekijken, gebruikt u $top en $skip samen. Als u bijvoorbeeld pagina's van grootte 10 wilt, moet uw eerste aanvraag $top=10 en $skip=0 hebben, moet de tweede aanvraag $top=10 en $skip=10 hebben, moet de derde aanvraag $top=10 en $skip=20 hebben, enzovoort.

Queryparameters

Een query accepteert verschillende parameters op de URL wanneer deze wordt aangeroepen met GET en als JSON-eigenschappen in de aanvraagbody wanneer deze wordt aangeroepen met POST. De syntaxis voor sommige parameters verschilt enigszins tussen GET en POST. Deze verschillen worden vermeld in de volgende tabel.

Naam Type Beschrijving
antwoorden (preview) snaar Facultatief. Geldige waarden zijn 'none' en 'extractive'. De standaardwaarde is 'none'. Deze parameter is alleen geldig als het querytype 'semantisch' is. Wanneer deze is ingesteld op 'extractief', formuleert en retourneert de query antwoorden uit belangrijke passages in de hoogste semantisch gerangschikte documenten. De standaardwaarde is één antwoord, maar u kunt maximaal 10 opgeven door een telling toe te voegen. Bijvoorbeeld: 'answers': 'extractive|count-3' retourneert drie antwoorden. Voor een antwoord dat moet worden geretourneerd, moet er exacte inhoud in het doelveld zijn die eruitziet als een antwoord. De taalmodellen die worden gebruikt voor antwoorden, worden getraind om antwoorden te herkennen, niet om ze te genereren. Bovendien moet de query zelf eruitzien als een vraag.
api-version snaar Vereist. Versie van de REST API die wordt gebruikt voor de aanvraag. Zie API-versiesvoor een lijst met ondersteunde versies. Voor deze bewerking wordt de API-versie opgegeven als een URI-parameter, ongeacht of u zoekdocumenten aanroept met GET of POST.
bijschriften (preview) snaar Facultatief. Geldige waarden zijn 'none' en 'extractive'. De standaardwaarde is 'none'. Deze parameter is alleen geldig als het querytype 'semantisch' is. Wanneer deze is ingesteld op 'extractief', retourneert de query bijschriften die zijn geëxtraheerd uit belangrijke passages in de hoogste gerangschikte documenten. Wanneer bijschriften zijn ingesteld op 'extrahief', is markering standaard ingeschakeld en kan deze worden geconfigureerd door het pipeteken | toe te voegen, gevolgd door de optie 'highlight-<true/false>', zoals 'extractive|highlight-true'.
$count booleaans Facultatief. Geldige waarden zijn 'true' of 'false'. De standaardwaarde is 'false'. Wanneer deze parameter wordt aangeroepen met POST, wordt deze parameter geteld in plaats van $count. Hiermee geeft u op of het totale aantal resultaten moet worden opgehaald. Deze waarde is het aantal documenten dat overeenkomt met de zoek- en $filter parameters, waarbij $top en $skip worden genegeerd. Als u deze waarde instelt op 'true', kunnen de prestaties afnemen. Aantal is nauwkeurig als de index stabiel is, maar alle documenten die actief worden toegevoegd, bijgewerkt of verwijderd, worden onder of overgerapport. Als u alleen het aantal zonder documenten wilt ophalen, kunt u $top=0 gebruiken.
facetten of facetten snaar Facultatief. Een veld dat moet worden ge facet door, waarbij het veld wordt toegeschreven aan 'facetable'. Wanneer deze wordt aangeroepen met GET, is facet een veld (facet: field1). Wanneer deze parameter wordt aangeroepen met POST, krijgt deze parameter de naam facets in plaats van facet en wordt deze opgegeven als een matrix (facets: [field1, field2, field3]). De tekenreeks kan parameters bevatten om het facet aan te passen, uitgedrukt als door komma's gescheiden naam-waardeparen.

Geldige waarden zijn 'count', 'sort', 'values', 'interval' en 'timeoffset'.

aantal is het maximum aantal facettermen; de standaardwaarde is 10. Er is geen bovengrens voor het aantal termen, maar hogere waarden verminderen de prestaties, vooral als het facetveld een groot aantal unieke termen bevat. Bijvoorbeeld: 'facet=category,count:5' haalt de top vijf categorieën op in facetresultaten. Als de tellingsparameter kleiner is dan het aantal unieke termen, zijn de resultaten mogelijk niet nauwkeurig. Dit komt doordat facetquery's worden verdeeld over shards. Als u een nauwkeurig aantal wilt berekenen voor alle shards, kunt u het aantal instellen op nul of op een waarde die groter is dan of gelijk is aan het aantal unieke waarden in het facetabelveld. De afweging is een hogere latentie.

'sort' kan worden ingesteld op 'count', '-count', 'value', '-value'. Gebruik het aantal om aflopend te sorteren op aantal. Gebruik -count om oplopend te sorteren op aantal. Gebruik waarde om oplopend op waarde te sorteren. Gebruik -value om aflopend te sorteren op waarde (bijvoorbeeld 'facet=category,count:3,sort:count' haalt de drie belangrijkste categorieën in facetresultaten op in aflopende volgorde op het aantal documenten met elke plaatsnaam). Als de drie belangrijkste categorieën Budget, Motel en Luxe zijn en Budget vijf treffers heeft, heeft Motel zes en Luxury vier, dan bevinden de buckets zich in de volgorde Motel, Budget, Luxe. Voor -value produceert "facet=rating,sort:-value" buckets voor alle mogelijke classificaties, in aflopende volgorde op waarde (bijvoorbeeld als de classificaties tussen 1 en 5 liggen, worden de buckets gerangschikt op 5, 4, 3, 2, 1, ongeacht het aantal documenten dat aan elke classificatie is gekoppeld).

'waarden' kan worden ingesteld op door pijpen gescheiden numerieke waarden of Edm.DateTimeOffset-waarden die een dynamische set facetinvoerwaarden opgeven (bijvoorbeeld 'facet=baseRate,values:10 | 20" produceert drie buckets: één voor basistarief 0 tot maar niet inclusief 10, één voor 10 tot maar niet inclusief 20, en één voor 20 en hoger). Een tekenreeks "facet=lastRenovationDate,values:2010-02-01T00:00:00Z" produceert twee buckets: één voor hotels gerenoveerd vóór februari 2010, en één voor hotels gerenoveerd op 1 februari 2010 of hoger. De waarden moeten in opeenvolgende volgorde worden weergegeven, oplopend om de verwachte resultaten te verkrijgen.

'interval' is een geheel getalinterval dat groter is dan 0 voor getallen of minuten, uur, dag, week, maand, kwartaal, jaar voor datum/tijd-waarden. Zo produceert 'facet=baseRate,interval:100' buckets op basis van basissnelheidsbereiken van grootte 100. Als basistarieven allemaal tussen $ 60 en $ 600 liggen, zijn er buckets voor 0-100, 100-200, 200-300, 300-400, 400-500 en 500-600. De tekenreeks "facet=lastRenovationDate,interval:year" produceert één bucket voor elk jaar wanneer hotels zijn gerenoveerd.

'timeoffset' kan worden ingesteld op ([+-]hh:mm, [+-]hhmm of [+-]hh). Als deze wordt gebruikt, moet de parameter timeoffset worden gecombineerd met de intervaloptie en alleen wanneer deze wordt toegepast op een veld van het type Edm.DateTimeOffset. De waarde geeft de UTC-tijdverschil aan waarvoor rekening moet worden gehouden bij het instellen van tijdgrenzen. Bijvoorbeeld: "facet=lastRenovationDate,interval:day,timeoffset:-01:00" gebruikt de daggrens die begint om 01:00:00 UTC (middernacht in de doeltijdzone).

aantal en sortering kunnen worden gecombineerd in dezelfde facetspecificatie, maar ze kunnen niet worden gecombineerd met interval of waarden, en interval en waarden kunnen niet samen worden gecombineerd.

intervalgezichten op datumtijd worden berekend op basis van de UTC-tijd als er geen tijdverschil is opgegeven. Bijvoorbeeld: voor "facet=lastRenovationDate,interval:day", begint de daggrens om 00:00:00 UTC.
featuresMode (preview) booleaans Facultatief. Geldige waarden zijn 'ingeschakeld' en 'uitgeschakeld'. De standaardwaarde is uitgeschakeld. Een waarde die aangeeft of de resultaten functies voor queryresultatenmoeten bevatten, die worden gebruikt om de relevantiescore van een document te berekenen ten opzichte van de query, zoals op basis van de overeenkomst van velden. Gebruik 'ingeschakeld' om meer queryresultatenfuncties weer te geven: score per veldovereenkomst, frequentie van veldtermen en per veldaantal unieke tokens dat overeenkomt. Zie Overeenkomsten en scorenvoor meer informatie.
$filter snaar Facultatief. Een gestructureerde zoekexpressie in de standaard-OData-syntaxis. Alleen filterbare velden kunnen worden gebruikt in een filter. Wanneer deze parameter wordt aangeroepen met POST, wordt deze parameter een filter genoemd in plaats van $filter. Zie OData-expressiesyntaxis voor Azure AI Search voor meer informatie over de subset van de grammatica van de OData-expressie die Door Azure AI Search wordt ondersteund.
hoogtepunt snaar Facultatief. Een set door komma's gescheiden veldnamen die worden gebruikt voor markeringen van treffers. Alleen doorzoekbare velden kunnen worden gebruikt voor het markeren van treffers. Standaard retourneert Azure AI Search maximaal vijf markeringen per veld. De limiet kan per veld worden geconfigureerd door '-<maximum aantal markeringen>' toe te voegen na de veldnaam. "highlight=title-3,description-10" retourneert bijvoorbeeld maximaal drie gemarkeerde treffers uit het titelveld en maximaal 10 treffers uit het beschrijvingsveld. Het maximum aantal markeringen moet een geheel getal tussen 1 en 1000 inclusief zijn.
highlightPostTag snaar Facultatief. Standaard ingesteld op "</em>". Een tekenreekstag die wordt toegevoegd aan de gemarkeerde term. Moet worden ingesteld met highlightPreTag. Gereserveerde tekens in URL moeten procent-gecodeerd zijn (bijvoorbeeld %23 in plaats van #).
highlightPreTag snaar Facultatief. Standaard ingesteld op "</em>". Een tekenreekstag die vooraf gaat aan de gemarkeerde term. Moet worden ingesteld met highlightPostTag. Gereserveerde tekens in URL moeten procent-gecodeerd zijn (bijvoorbeeld %23 in plaats van #).
minimumcoverage geheel getal Facultatief. Geldige waarden zijn een getal tussen 0 en 100, waarmee het percentage van de index wordt aangegeven dat beschikbaar moet zijn voor de service van de query voordat deze kan worden gerapporteerd als geslaagd. De standaardwaarde is '100'.

Honderd procent dekking betekent dat alle shards op de aanvraag hebben gereageerd (noch servicestatusproblemen noch onderhoudsactiviteiten verminderde dekking). Onder de standaardinstelling retourneert minder dan volledige dekking HTTP-statuscode 503.

MinimumCoverage verlagen kan nuttig zijn als er 503-fouten optreden en u de kans op een geslaagde query wilt verhogen, met name voor services die zijn geconfigureerd voor één replica. Als u minimumCoverage en Search instelt, retourneert deze HTTP 200 en neemt u een @search.coverage waarde op in het antwoord dat het percentage van de index aangeeft dat in de query is opgenomen. In dit scenario zijn niet alle overeenkomende documenten gegarandeerd aanwezig in de zoekresultaten, maar als de beschikbaarheid van zoekopdrachten belangrijker is dan intrekken, kan het verminderen van de dekking een haalbare risicobeperkingsstrategie zijn.
$orderby snaar Facultatief. Een lijst met door komma's gescheiden expressies waarop de resultaten moeten worden gesorteerd. Wanneer deze parameter wordt aangeroepen met POST, wordt deze parameter orderby genoemd in plaats van $orderby. Elke expressie kan een veldnaam of een aanroep naar de functie geo.distance() zijn. Elke expressie kan worden gevolgd door 'asc' om oplopend aan te geven en 'desc' om aflopend aan te geven. Als het sorteerveld null-waarden bevat, worden null-waarden eerst weergegeven in oplopende volgorde en voor het laatst in aflopende volgorde. De standaardvolgorde is oplopend. Ties worden verbroken door de overeenkomende scores van documenten. Als er geen $orderby is opgegeven, wordt de standaardsorteervolgorde aflopend op de score van de documentovereenkomst. Er geldt een limiet van 32 componenten voor $orderby.
queryLanguage (preview) snaar Facultatief. Geldige waarden zijn een ondersteunde taal. Standaard ingesteld op 'en-us'. Deze parameter moet worden ingesteld als u spellinger=lexicon of queryType=semantisch gebruikt. De taal die is opgegeven in queryLanguage wordt gebruikt voor zowel spellingcontrole als door de semantische modellen die resultaten opnieuw rangtelen en een bijschrift of antwoord extraheren. De bibliotheken die worden gebruikt voor queryLanguage zijn onafhankelijk van andere veldkenmerken op basis van landinstellingen, zoals taalanalyses gebruikt voor indexering en zoeken in volledige tekst.
queryType snaar Facultatief. Geldige waarden zijn 'eenvoudig', 'volledig' of 'semantisch' (preview). De standaardwaarde is 'eenvoudig'. Deze waarde wordt genegeerd voor vectorzoekopdrachten, maar is van toepassing op zoeken in tekst in hybride scenario's.

'eenvoudig' interpreteert queryreeksen met behulp van de eenvoudige querysyntaxis waarmee symbolen zoals +, *en ""worden toegestaan. Query's worden standaard geëvalueerd in alle doorzoekbare velden (of velden die worden aangegeven in searchFields) in elk document.

'volledig' interpreteert queryreeksen met behulp van de volledige Lucene-querysyntaxis waarmee veldspecifieke en gewogen zoekopdrachten mogelijk zijn. Zoeken in het bereik in de Lucene-querytaal wordt niet ondersteund ten gunste van $filter, dat vergelijkbare functionaliteit biedt.

'semantisch' verbetert de precisie van zoekresultaten door de top 50 overeenkomsten opnieuw te rangschikken met behulp van een classificatiemodel dat is getraind op het Bing-corpus voor query's die in natuurlijke taal worden uitgedrukt in plaats van trefwoorden. Als u het querytype instelt op semantisch, moet u ook queryLanguage en semanticConfiguration instellen. U kunt eventueel antwoorden instellen als u ook de belangrijkste drie antwoorden wilt retourneren als de query-invoer is geformuleerd in natuurlijke taal ('wat is een ...) en u kunt desgewenst bijschriften instellen om belangrijke passages uit de hoogste gerangschikte documenten te extraheren.
scoringParameter snaar Facultatief. Geeft de waarden aan voor elke parameter die is gedefinieerd in een scorefunctie (zoals referencePointParameter) met de notatie 'name-value1,value2,...' Wanneer deze parameter wordt aangeroepen met POST, krijgt deze parameter de naam scoringParameters in plaats van scoringParameter. U geeft deze ook op als een JSON-matrix met tekenreeksen waarbij elke tekenreeks een afzonderlijk paar naamwaarden is.

Voor scoreprofielen die een functie bevatten, scheidt u de functie van de invoerlijst met een - teken. Een functie met de naam "mylocation" zou bijvoorbeeld '&scoringParameter=mylocation--122.2,44,8' zijn. Het eerste streepje scheidt de functienaam van de lijst met waarden, terwijl het tweede streepje deel uitmaakt van de eerste waarde (lengtegraad in dit voorbeeld).

Voor scoreparameters, zoals voor tagverhoging die komma's kunnen bevatten, kunt u deze waarden in de lijst escapen met enkele aanhalingstekens. Als de waarden zelf enkele aanhalingstekens bevatten, kunt u deze escapen door deze te verdubbelen. Stel dat u een parameter voor tagverhoging hebt met de naam "mytag" en dat u de tagwaarden 'Hallo, O'Brien' en 'Smith' wilt verhogen. De querytekenreeksoptie zou dan&scoringParameter=mytag-'Hello, O'Brien',Smith' zijn. Aanhalingstekens zijn alleen vereist voor waarden die komma's bevatten.
scoringProfile snaar Facultatief. De naam van een scoreprofiel om overeenkomende scores voor overeenkomende documenten te evalueren om de resultaten te sorteren.
scoringStatistics snaar Facultatief. Geldige waarden zijn 'lokaal' of 'globaal'. De standaardwaarde is 'lokaal'. Geef op of u scorestatistieken wilt berekenen, zoals documentfrequentie, globaal (voor alle shards) voor consistentere scoren of lokaal (op de huidige shard) voor lagere latentie. Zie Scorestatistieken in Azure AI Search. Scorestatistieken worden altijd lokaal berekend voor termen die gebruikmaken van fuzzy zoekopdrachten ('~').
zoeken snaar Facultatief. De te zoeken tekst. Deze waarde wordt genegeerd voor vectorzoekopdrachten, maar is van toepassing op zoeken in tekst in hybride scenario's. In REST API's worden alle doorzoekbare velden standaard doorzocht, tenzij searchFields is opgegeven. In de index wordt tekst in een doorzoekbaar veld tokenized, zodat meerdere termen kunnen worden gescheiden door witruimte (bijvoorbeeld 'search=hello world'). Als u een term wilt vergelijken, gebruikt u * (dit kan handig zijn voor booleaanse filterquery's). Het weglaten van deze parameter heeft hetzelfde effect als het instellen op *. Zie eenvoudige querysyntaxis voor specifieke informatie over de zoeksyntaxis.

resultaten kunnen soms verrassend zijn bij het uitvoeren van query's op doorzoekbare velden. De tokenizer bevat logica voor het verwerken van zaken die gebruikelijk zijn voor Engelse tekst, zoals apostrofs, komma's in getallen, enzovoort. 'search=123.456' komt bijvoorbeeld overeen met één term '123.456' in plaats van de afzonderlijke termen '123' en '456', omdat komma's worden gebruikt als scheidingstekens voor duizendtallen in het Engels. Daarom raden we u aan witruimte te gebruiken in plaats van interpunctie om termen in de zoekparameter te scheiden.
searchMode snaar Facultatief. Geldige waarden zijn 'any' of 'all' standaardwaarden op 'any'. Hiermee geeft u op of een of alle zoektermen moeten worden vergeleken om het document als overeenkomst te tellen.
searchFields snaar Facultatief. De lijst met door komma's gescheiden veldnamen om te zoeken naar de opgegeven tekst. Doelvelden moeten worden gemarkeerd als doorzoekbaar in het indexschema en moeten van het type Edm.String, Edm.ComplexTypeof Collection(Edm.String)zijn.
$select snaar Facultatief. Een lijst met door komma's gescheiden velden die moeten worden opgenomen in de resultatenset. Alleen velden die als ophaalbaar zijn gemarkeerd, kunnen in deze component worden opgenomen. Als dit niet is opgegeven of is ingesteld op *, worden alle velden die zijn gemarkeerd als ophaalbaar in het schema, opgenomen in de projectie. Wanneer deze parameter wordt aangeroepen met POST, wordt deze parameter geselecteerd in plaats van $select.
semanticConfiguration (preview) snaar Facultatief. Vereist als queryType="semantisch". De naam van de semantische configuratie waarin wordt vermeld welke velden moeten worden gebruikt voor semantische rangschikking, bijschriften, markeringen en antwoorden. Zie Een semantische query makenvoor meer informatie.
sessionId snaar Facultatief. Het gebruik van sessionId helpt de consistentie van relevantiescores voor zoekservices met meerdere replica's te verbeteren. In configuraties met meerdere replica's kunnen er kleine verschillen zijn tussen relevantiescores van afzonderlijke documenten voor dezelfde query. Wanneer er een sessie-id wordt opgegeven, doet de service er alles aan om een bepaalde aanvraag naar dezelfde replica voor die sessie te routeren. Wees voorzichtig dat het herhaaldelijk hergebruiken van dezelfde sessie-id-waarden de taakverdeling van de aanvragen tussen replica's kan verstoren en de prestaties van de zoekservice nadelig kan beïnvloeden. De waarde die wordt gebruikt als sessionId, kan niet beginnen met een _-teken. Als een service geen replica's heeft, heeft deze parameter geen invloed op prestaties of scoreconsistentie.
$skip geheel getal Facultatief. Het aantal zoekresultaten dat moet worden overgeslagen. Wanneer deze parameter wordt aangeroepen met POST, wordt deze parameter overgeslagen in plaats van $skip. Deze waarde mag niet groter zijn dan 100.000. Als u documenten op volgorde wilt scannen, maar $skip niet kunt gebruiken vanwege deze beperking, kunt u overwegen $orderby te gebruiken voor een veld met unieke waarden voor elk document in de index (zoals de documentsleutel, bijvoorbeeld) en $filter met een bereikquery.
spellingcontrole (preview) Snaar Facultatief. Geldige waarden zijn 'none' en 'lexicon'. De standaardwaarde is 'none'. U kunt het intrekken verbeteren door afzonderlijke zoekquerytermen te corrigeren. U kunt deze gebruiken voor eenvoudige, volledige en semantische querytypen. Als u deze parameter gebruikt, is queryLanguage vereist voor de parameter voor de spelling. Zie Spellingcontrole toevoegen aan query'svoor meer informatie en voorbeelden.
$top geheel getal Facultatief. Het aantal zoekresultaten dat moet worden opgehaald. Dit is standaard ingesteld op 50. Wanneer deze parameter wordt aangeroepen met POST, wordt deze parameter bovenaan genoemd in plaats van $top. Als u een waarde opgeeft die groter is dan 1000 en er meer dan 1000 resultaten zijn, worden alleen de eerste 1000 resultaten geretourneerd, samen met een koppeling naar de volgende pagina met resultaten (zie '@odata.nextLink' in het onderstaande voorbeeld).

Azure AI Search gebruikmaakt van paging aan de serverzijde om te voorkomen dat query's te veel documenten tegelijk ophalen. Het standaardpaginaformaat is 50, terwijl het maximale paginaformaat 1000 is. Dit betekent dat standaard documenten zoeken maximaal 50 resultaten retourneert als u geen $top opgeeft. Als er meer dan 50 resultaten zijn, bevat het antwoord informatie om de volgende pagina van maximaal 50 resultaten op te halen (zie '@odata.nextLink' en '@search.nextPageParameters' in de Voorbeelden hieronder. Als u een waarde opgeeft die groter is dan 1000 voor $top en er meer dan 1000 resultaten zijn, worden alleen de eerste 1000 resultaten geretourneerd, samen met informatie om de volgende pagina van maximaal 1000 resultaten op te halen.
vectoren (preview) array Facultatief. Het objecttype in de matrix is een vectorquery. De queryparameters voor vectorquery's.

'waarde' is de vectorweergave van een zoekquery. Deze representatie moet extern worden gevormd. Azure AI Search maakt geen insluitingen.

'k' is een geheel getal dat het aantal dichtstbijzijnde buren aangeeft dat als toptreffers moet worden geretourneerd. De standaardwaarde is 50. Minimum is 1 en maximum is 10.000.

'velden' is een door komma's gescheiden lijstveldnamen die vectorgegevens bevatten. Alleen velden van het type Collection(Edm.Single) kunnen worden opgenomen in de lijst 'velden'.

Antwoord

Statuscode: 200 OK wordt geretourneerd voor een geslaagd antwoord. Er zijn twee voorbeeldreacties in dit artikel, één voor semantische zoekopdrachten en featuresMode.

Voorbeeldantwoord voor semantische query

In het eerste voorbeeld ziet u het volledige antwoord voor het bovenste resultaat voor de semantische query 'hoe vormen clouds'.

  • '@search.answers' wordt weergegeven wanneer u de antwoordparameter opgeeft en wanneer de query en de doelvelden in de index inhoud bevatten die als antwoord kan worden herkend. De @search.answers matrix met een sleutel, tekst en markeringen. De score is een indicator van de sterkte van het antwoord.

  • 'waarde' is de hoofdtekst van het antwoord. De @search.rerankerScore wordt toegewezen door het semantische classificatie-algoritme en wordt gebruikt om resultaten te rangschikken (@search.score komt uit het BM25-gelijkenis-algoritme, gebruikt bij het scoren van de eerste resultaten). Bijschriften zijn tekst zonder opmaak en gemarkeerde versies. Dit voorbeeld is gemaakt met OCR en vaardigheden voor entiteitsherkenning. Velden voor de geëxtraheerde en samengevoegde inhoud worden opgenomen in het antwoord.

{
    "@search.answers": [
        {
            "key": "aHR0cHM6Ly9oZWlkaXN0YmxvYnN0b3JhZ2UuYmxvYi5jb3JlLndpbmRvd3MubmV0L25hc2EtZWJvb2stMS01MC9wYWdlLTQ1LnBkZg2",
            "text": "Sunlight heats the land all day, warming that moist air and causing it to rise high into the atmosphere until it cools and condenses into water droplets. Clouds generally form where air is ascending (over land in this case),   but not where it is descending (over the river).",
            "highlights": "Sunlight heats the land all day, warming that moist air and causing it to rise high into the   atmosphere until it cools and condenses into water droplets. Clouds generally form<em> where air is ascending</em> (over land in this case),   but not where it is<em> descending</em> (over the river).",
            "score": 0.94639826
        }
    ],
    "value": [
        {
            "@search.score": 0.5479723,
            "@search.rerankerScore": 1.0321671911515296,
            "@search.captions": [
                {
                    "text": "Like all clouds, it forms when the air reaches its dew point—the temperature at which an air mass is cool enough for its water vapor to condense into liquid droplets. This false-color image shows valley fog, which is common in the Pacific Northwest of North America.",
                    "highlights": "Like all<em> clouds</em>, it<em> forms</em> when the air reaches its dew point—the temperature at    which an air mass is cool enough for its water vapor to condense into liquid droplets. This false-color image shows valley<em> fog</em>, which is common in the Pacific Northwest of North America."
                }
            ],
            "content": "\nA\nT\n\nM\nO\n\nS\nP\n\nH\nE\n\nR\nE\n\nE\nA\n\nR\nT\n\nH\n\n34\n\nValley Fog\nCanada\n\nFog is essentially a cloud lying on the ground. Like all clouds, it forms when the air reaches its dew point—the temperature at  \n\nwhich an air mass is cool enough for its water vapor to condense into liquid droplets.\n\nThis false-color image shows valley fog, which is common in the Pacific Northwest of North America. On clear winter nights, the \n\nground and overlying air cool off rapidly, especially at high elevations. Cold air is denser than warm air, and it sinks down into the \n\nvalleys. The moist air in the valleys gets chilled to its dew point, and fog forms. If undisturbed by winds, such fog may persist for \n\ndays. The Terra satellite captured this image of foggy valleys northeast of Vancouver in February 2010.\n\n\n",
            "metadata_storage_path": "aHR0cHM6Ly9oZWlkaXN0YmxvYnN0b3JhZ2UuYmxvYi5jb3JlLndpbmRvd3MubmV0L25hc2EtZWJvb2stMS01MC9wYWdlLTQxLnBkZg2",
            "people": [],
            "locations": [
                "Pacific Northwest",
                "North America",
                "Vancouver"
            ],
            "merged_content": "\nA\nT\n\nM\nO\n\nS\nP\n\nH\nE\n\nR\nE\n\nE\nA\n\nR\nT\n\nH\n\n34\n\nValley Fog\nCanada\n\nFog is essentially a cloud lying on the ground. Like all clouds, it forms when the air reaches its dew point—the temperature at  \n\nwhich an air mass is cool enough for its water vapor to condense into liquid droplets.\n\nThis false-color image shows valley fog, which is common in the Pacific Northwest of North America. On clear winter nights, the \n\nground and overlying air cool off rapidly, especially at high elevations. Cold air is denser than warm air, and it sinks down into the \n\nvalleys. The moist air in the valleys gets chilled to its dew point, and fog forms. If undisturbed by winds, such fog may persist for \n\ndays. The Terra satellite captured this image of foggy valleys northeast of Vancouver in February 2010.\n\n\n",
            "text": [],
            "layoutText": []
        }
    ]
}

Voorbeeldantwoord voor featuresMode

In dit voorbeeld ziet u de uitvoer '@search.features' van een query met featuresMode.

  {
    "@odata.count": # (if $count=true was provided in the query),
    "@search.coverage": # (if minimumCoverage was provided in the query),
    "@search.facets": { (if faceting was specified in the query)
      "facet_field": [
        {
          "value": facet_entry_value (for non-range facets),
          "from": facet_entry_value (for range facets),
          "to": facet_entry_value (for range facets),
          "count": number_of_documents
        }
      ],
      ...
    },
    "@search.nextPageParameters": { (request body to fetch the next page of results if not all results could be returned in this response and Search was called with POST)
      "count": ... (value from request body if present),
      "facets": ... (value from request body if present),
      "featuresMode" : ... (value from request body if present),
      "filter": ... (value from request body if present),
      "highlight": ... (value from request body if present),
      "highlightPreTag": ... (value from request body if present),
      "highlightPostTag": ... (value from request body if present),
      "minimumCoverage": ... (value from request body if present),
      "orderby": ... (value from request body if present),
      "scoringParameters": ... (value from request body if present),
      "scoringProfile": ... (value from request body if present),
      "scoringStatistics": ... (value from request body if present),
      "search": ... (value from request body if present),
      "searchFields": ... (value from request body if present),
      "searchMode": ... (value from request body if present),
      "select": ... (value from request body if present),
      "sessionId" : ... (value from request body if present),
      "skip": ... (page size plus value from request body if present),
      "top": ... (value from request body if present minus page size),
    },
    "value": [
      {
        "@search.score": document_score (if a text query was provided),
        "@search.highlights": {
          field_name: [ subset of text, ... ],
          ...
        },
        "@search.features": {
          "field_name": {
            "uniqueTokenMatches": feature_score,
            "similarityScore": feature_score,
            "termFrequency": feature_score,
          },
          ...
        },
        key_field_name: document_key,
        field_name: field_value (retrievable fields or specified projection),
        ...
      },
      ...
    ],
    "@odata.nextLink": (URL to fetch the next page of results if not all results could be returned in this response; Applies to both GET and POST)
  }

Voorbeelden

Meer voorbeelden vindt u in OData-expressiesyntaxis voor Azure AI Search.

voorbeeld: eenvoudige zoekfunctie

Zoek documenten in de index met behulp van eenvoudige querysyntaxis. Deze query retourneert hotels waar doorzoekbare velden de termen "comfort" en "locatie" maar niet "motel" bevatten:

Get /indexes/hotels/docs?search=comfort +location –motel&searchMode=all&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
    {  
      "search": "comfort +location -motel",  
      "searchMode": "all"  
    }  

Fooi

Het gebruik van searchMode=all overschrijft de standaardwaarde van searchMode=any, zodat -motel betekent "AND NOT" in plaats van "OR NOT". Zonder searchMode=allkrijgt u 'OF NIET' dat wordt uitgebreid in plaats van zoekresultaten te beperken. Dit kan voor sommige gebruikers contra-intuïtief zijn.

voorbeeld: volledige Lucene-zoekopdracht

Documenten zoeken in de index met behulp van Lucene-querysyntaxis (zie Lucene-querysyntaxis in Azure AI Search). Deze query retourneert hotels waarin het categorieveld de term 'budget' bevat en alle doorzoekbare velden met de woordgroep 'onlangs gerenoveerd'. Documenten met de woordgroep 'onlangs gerenoveerd' worden hoger gerangschikt als gevolg van de term boostwaarde (3)

GET /indexes/hotels/docs?search=Category:budget AND \"recently renovated\"^3&searchMode=all&api-version=2021-04-30-Preview&querytype=full`
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
    {  
      "search": "Category:budget AND \"recently renovated\"^3",  
      "queryType": "full",  
      "searchMode": "all"  
}  

voorbeeld: semantische zoekopdrachten

Roep het semantische classificatiemodel aan met antwoorden, bijschriften en gemarkeerde inhoud. Het antwoord voor deze query vindt u in de vorige sectie.

POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
{
  "search": "how do clouds form",
  "queryType": "semantic",
  "semanticConfiguration": "my-semantic-config",
  "queryLanguage": "en-us",
  "answers": "extractive",
  "captions": "extractive",
  "count": "true"
}

voorbeeld: vectorzoekopdrachten

Voor een index met velden van het type Collection(Edm.Single) en een vectorconfiguratie kunt u vectorqueryparameters opgeven. Vectorqueryparameters bevatten de vectorvelden die binnen het bereik van de query vallen, het 'k' aantal toptreffers dat moet worden geretourneerd en een vectorweergave van de queryinvoer.

Het toevoegen van een parameter 'select' is handig als de index tekstvelden bevat. Overeenkomende en relevantie zijn gebaseerd op vectoren, maar velden met door mensen leesbare inhoud zijn nuttiger voor iemand die de resultaten leest. U kunt ook code schrijven waarmee de vectorgegevens in uw zoekresultaten naar tekst worden geconverteerd.

POST https://{{search-service-name}}.search.windows.net/indexes/{{index-name}}/docs/search?api-version={{api-version}}
Content-Type: application/json
api-key: {{admin-api-key}}
{
    "search": (this parameter is ignored in vector search),
    "vectors": [{
        "value": [
            -0.009154141,
            0.018708462,
            . . . 
            -0.02178128,
            -0.00086512347
        ],
        "fields": "contentVector",
        "k": 5
    }],
    "select": "title, content, category"
}

voorbeeld: orderby

Zoek in de index en retourneer resultaten gesorteerd op datum in aflopende volgorde.

GET /indexes/hotels/docs?search=*&$orderby=LastRenovationDate desc&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
    {  
      "search": "*",  
      "orderby": "LastRenovationDate desc"
    }  

voorbeeld: filteren met behulp van een OData-expressie

Documenten ophalen die overeenkomen met een specifieke filterexpressie:

GET /indexes/hotels/docs?$filter=(Rooms/BaseRate ge 60 and Rooms/BaseRate lt 300) or HotelName eq 'Fancy Stay'&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
    {  
      "filter": "(Rooms/BaseRate ge 60 and Rooms/BaseRate lt 300) or HotelName eq 'Fancy Stay'"  
    }  

voorbeeld: facetzoekopdrachten

Zoek in een facetzoekopdracht de index en haal facetten op voor categorieën, beoordelingen, tags en items met baseRate in specifieke bereiken.

GET /indexes/hotels/docs?search=*&facet=Category&facet=Rating&facet=Tags&facet=Rooms/BaseRate,values:80|150|220&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
    {  
      "search": "test",  
      "facets": [ "Category", "Rating", "Tags", "Rooms/BaseRate,values:80|150|220" ]  
    }  

U ziet dat het laatste facet zich in een subveld bevindt. Facetten tellen het bovenliggende document (Hotels) en niet tussenliggende subdocumenten (Kamers), dus het antwoord bepaalt het aantal hotels met kamers in elke prijsbucket.

voorbeeld: Een facetquery beperken

Gebruik een filter om het vorige facetqueryresultaat te verfijnen nadat de gebruiker Beoordeling 3 en categorie 'Motel' heeft geselecteerd.

GET /indexes/hotels/docs?search=*&facet=tags&facet=Rooms/BaseRate,values:80|150|220&$filter=Rating eq 3 and Category eq 'Motel'&api-version=2021-04-30-Preview  
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview 
    {  
      "search": "test",  
      "facets": [ "tags", "Rooms/BaseRate,values:80|150|220" ],  
      "filter": "Rating eq 3 and Category eq 'Motel'"  
    }  

voorbeeld: facetzoekopdrachten met limieten voor elke categorie

Stel in een facetzoekopdracht een bovengrens in voor unieke termen die in een query worden geretourneerd. De standaardwaarde is 10, maar u kunt deze waarde verhogen of verlagen met behulp van de tellingsparameter voor het facetkenmerk. In dit voorbeeld worden facetten voor de stad geretourneerd, beperkt tot 5.

GET /indexes/hotels/docs?search=*&facet=Address/City,count:5&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
    {  
      "search": "test",  
      "facets": [ "Address/City,count:5" ]  
    }  

voorbeeld: zoeken in velden

De index doorzoeken binnen specifieke velden (bijvoorbeeld een taalveld)

GET /indexes/hotels/docs?search=hôtel&searchFields=Description_fr&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
    {  
      "search": "hôtel",  
      "searchFields": "Description_fr"
    }  

Doorzoek de index in meerdere velden. U kunt bijvoorbeeld doorzoekbare velden in meerdere talen opslaan en er query's op uitvoeren, allemaal binnen dezelfde index. Als in hetzelfde document Engelse en Franse beschrijvingen naast elkaar bestaan, kunt u een of meer van de queryresultaten retourneren:

GET /indexes/hotels/docs?search=hotel&searchFields=Description,Description_fr&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
    {  
      "search": "hotel",  
      "searchFields": "Description, Description_fr"
    }  

U kunt slechts één index tegelijk opvragen. Maak niet meerdere indexen voor elke taal, tenzij u een query voor één wilt uitvoeren.

voorbeeld: pagingresultaten

De eerste pagina met items ophalen (paginaformaat is 10):

GET /indexes/hotels/docs?search=*&$skip=0&$top=10&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
    {  
      "search": "*",  
      "skip": 0,  
      "top": 10  
    }  

De tweede pagina met items ophalen (paginaformaat is 10):

GET /indexes/hotels/docs?search=*&$skip=10&$top=10&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
    {  
      "search": "*",  
      "skip": 10,  
      "top": 10  
    }  

voorbeeld: velden in een resultatenset beperken

Een specifieke set velden ophalen:

GET /indexes/hotels/docs?search=*&$select=HotelName,Description&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
    {  
      "search": "*",  
      "select": "HotelName, Description"
    }  

voorbeeld: klikken op markeren in resultaten

Zoek in de index en retourneer fragmenten met hitpunten:

GET /indexes/hotels/docs?search=something&highlight=Description&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
    {  
      "search": "something",  
      "highlight": "Description"  
    }  

voorbeeld: Georuimtelijke zoekopdrachten

Doorzoek de index en retourneer documenten die dichter bij een referentielocatie zijn gesorteerd:

GET /indexes/hotels/docs?search=something&$orderby=geo.distance(Location, geography'POINT(-122.12315 47.88121)')&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
    {  
      "search": "something",  
      "orderby": "geo.distance(Location, geography'POINT(-122.12315 47.88121)')"
    }  

voorbeeld: 'vind door mij' (verhoog de relevantie van locaties in de buurt

Zoek in de index, ervan uitgaande dat er een scoreprofiel met de naam 'geo' is met twee functies voor scoren op afstand, één die een parameter met de naam 'currentLocation' definieert en een parameter met de naam 'lastLocation'. In het volgende voorbeeld heeft 'currentLocation' een scheidingsteken van één streepje (-). Het wordt gevolgd door lengte- en breedtegraadcoördinaten, waarbij lengtegraad een negatieve waarde is.

GET /indexes/hotels/docs?search=something&scoringProfile=geo&scoringParameter=currentLocation--122.123,44.77233&scoringParameter=lastLocation--121.499,44.2113&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
    {  
      "search": "something",  
      "scoringProfile": "geo",  
      "scoringParameters": [ "currentLocation--122.123,44.77233", "lastLocation--121.499,44.2113" ]  
    }  

voorbeeld: een query uitvoeren op volledige index in plaats van shards

Zoek documenten in de index terwijl u een consistente score wilt gebruiken ten opzichte van een lagere latentie. Deze query berekent documentfrequenties in de hele index en doet er alles aan om dezelfde replica te richten voor alle query's binnen dezelfde 'sessie', waarmee een stabiele en reproduceerbare classificatie wordt gegenereerd.

GET /indexes/hotels/docs?search=hotel&sessionId=mySessionId&scoringStatistics=global&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
    {  
      "search": "hotel",  
      "sessionId": "mySessionId",
      "scoringStatistics" :"global"
    }  

Voorbeeld: scorestatistieken (featuresMode)

Zoek documenten in de index en retourneer een lijst met functies voor het ophalen van gegevens voor elk resultaat met een beschrijving van de score tussen het overeenkomende document en de query. De query berekent ook documentfrequenties in de hele index om een consistentere score te produceren.

GET /indexes/hotels/docs?search=hotel&featuresMode=enabled&scoringStatistics=global&api-version=2021-04-30-Preview
POST /indexes/hotels/docs/search?api-version=2021-04-30-Preview
    {  
      "search": "hotel",  
      "featuresMode": "enabled",
      "scoringStatistics" :"global"
    }  

Een voorbeeld van een antwoord met search.features ziet er ongeveer als volgt uit:

    "@search.score": 0.91875637,
    "@search.features": {
        "Description": {
            "uniqueTokenMatches": 1,
            "similarityScore": 0.2917966,
            "termFrequency": 2
        },
        "HotelName": {
            "uniqueTokenMatches": 1,
            "similarityScore": 0.44458693,
            "termFrequency": 1
        }
      . . .

Definities

In deze sectie vindt u informatie over parameters die te complex zijn om in de hoofdtabel te worden behandeld.

Verbinden Beschrijving
queryLanguage- Lijst met de ondersteunde talen voor spelling- en semantische zoekopdrachten.

queryLanguage

Geldige waarden voor de parameter queryLanguage worden opgegeven in de volgende tabel, in de kolom queryLanguage, en zijn niet hoofdlettergevoelig. De standaardwaarde voor de parameter als geheel is "en-us". Binnen elke taal is er een standaardvariant voor elke code van twee tekens. Als u bijvoorbeeld 'es' opgeeft, wordtes-usstandaard gebruikt. De parameter queryLanguage is vereist voor een queryaanvraag die 'queryType=semantic' of 'speller=lexicon' bevat. Er is slechts één queryLanguage-waarde voor de hele aanvraag en die waarde wordt gebruikt voor semantische rangschikking, bijschriften, antwoorden en spellingcontrole (er is geen onderdrukking voor afzonderlijke functies).

Op dit moment varieert taalondersteuning per functie. Alleen Engels, Spaans, Frans en Duits worden ondersteund voor de volledige set functies, maar u ziet dat de spellingcontrole minder varianten implementeert.

Als u een taalcode opgeeft die niet wordt ondersteund door een bepaalde functie, zoals EN-GB met spellingcontrole, retourneert de service HTTP 400.

Zie Semantische rangschikking en bijschriften inschakelen, Een semantisch antwoord retournerenen Spellingcontrole toevoegen aan query'svoor meer informatie over het gebruik van elke functie.

De aanduiding (preview)' geeft aan dat validatietests voor alle functies (semantische rangschikking, bijschriften, antwoorden en spellingcontrole) doorlopend of in behandeling zijn. We raden het gebruik van alle taalvarianten in de volgende tabel aan, maar raden u aan om meer tests van voorbeeldtalen uit te voeren om ervoor te zorgen dat de resultaten geldig zijn voor uw inhoud. Talen met een vinkje en geen preview-aanduiding zijn gevalideerd met behulp van gelijkwaardige gegevenssets, met meetbare winst in relevantie.

Taal queryLanguage Semantische rangschikking en bijschriften Semantisch antwoord Speller
Engels [en] en, en-US (standaard), en-GB, en-IN, en-CA, en-AU ✔️ ✔️ ✔️ (en, en-US)
Frans [fr] fr, fr-FR (standaard), fr-CA ✔️ ✔️ ✔️ (fr, fr-FR)
Duits [de] de, de-DE (standaard) ✔️ ✔️ ✔️ (de, de-DE)
Spaans [es] es, es-ES (standaardinstelling), es-MX ✔️ ✔️ ✔️ (es, es-ES)
Italiaans [it] it, it-IT (standaard) ✔️ ✔️
Japans [ja] ja, ja-JP (standaard) ✔️ ✔️ (preview)
Chinees [zh] zh, zh-CN (standaardinstelling), zh-TW ✔️ ✔️ (preview)
Portugees [pt] pt, pt-BR (standaardinstelling), pt-PT ✔️ ✔️ (preview)
Nederlands [nl] nl, nl-BE, nl-NL (standaard) ✔️ (preview) ✔️ (preview) ✔️ (nl, nl-NL)
Arabisch [ar] ar, ar-SA (standaardinstelling), ar-EG, ar-MA, ar-KW, ar-JO ✔️ (preview) ✔️ (preview)
Armeens hy-AM (standaard) ✔️ (preview) ✔️ (preview)
Bangla bn-IN (standaard) ✔️ (preview) ✔️ (preview)
Baskisch eu-ES (standaard) ✔️ (preview) ✔️ (preview)
Bulgaars [bg] bg, bg-BG (standaard) ✔️ (preview) ✔️ (preview)
Catalaans [ca] ca, ca-ES (standaard) ✔️ (preview) ✔️ (preview)
Kroatisch [hr] hr, hr-HR (standaardinstelling), hr-BA ✔️ (preview) ✔️ (preview)
Tsjechisch [cs] cs, cs-CZ (standaard) ✔️ (preview) ✔️ (preview)
Deens [da] da, da-DK (standaard) ✔️ (preview) ✔️ (preview)
Ests [et] et, et-EE (standaard) ✔️ (preview) ✔️ (preview)
Fins [fi] fi, fi-FI (standaard) ✔️ (preview) ✔️ (preview)
Galicisch gl-ES (standaard) ✔️ (preview) ✔️ (preview)
Grieks [el] el, el-GR (standaard) ✔️ (preview) ✔️ (preview)
Gujarati gu-IN (standaard) ✔️ (preview) ✔️ (preview)
Hebreeuws he-IL (standaard) ✔️ (preview) ✔️ (preview)
Hindi [hi] hi, hi-IN (standaard) ✔️ (preview) ✔️ (preview)
Hongaars [hu] hu, hu-HU (standaard) ✔️ (preview) ✔️ (preview)
IJslands [is] is, is-IS (standaard) ✔️ (preview) ✔️ (preview)
Indonesisch [id] id, id-ID (standaard) ✔️ (preview) ✔️ (preview)
Iers ga-IE (standaard) ✔️ (preview) ✔️ (preview)
Kannada kn-IN (standaard) ✔️ (preview) ✔️ (preview)
Koreaans [ko] ko, ko-KR (standaard) ✔️ (preview) ✔️ (preview)
Lets [lv] lv, lv-LV (standaard) ✔️ (preview) ✔️ (preview)
Litouws [lt] lt, lt-LT (standaard) ✔️ (preview) ✔️ (preview)
Malajalam ml-IN (standaard) ✔️ (preview) ✔️ (preview)
Maleisisch [ms] ms, ms-MY (standaardinstelling), ms-BN ✔️ (preview) ✔️ (preview)
Marathi mr-IN (standaard) ✔️ (preview) ✔️ (preview)
Noors [no] nee, no-NO (standaard), nb-NO ✔️ (preview) ✔️ (preview)
Perzisch fa-AE (standaard) ✔️ (preview) ✔️ (preview)
Pools [pl] pl, pl-PL (standaard) ✔️ (preview) ✔️ (preview)
Punjabi pa-IN (standaard) ✔️ (preview) ✔️ (preview)
Roemeens [ro] ro, ro-RO (standaard) ✔️ (preview) ✔️ (preview)
Russisch [ru] ru, ru-RU (standaard) ✔️ (preview) ✔️ (preview)
Servisch [sr] (Cyrillisch of Latijns) sr, sr-BA (standaardinstelling), sr-ME, sr-RS ✔️ (preview) ✔️ (preview)
Slowaaks [sk] sk, sk-SK (standaard) ✔️ (preview) ✔️ (preview)
Sloveens [sl] sl, sl-SL (standaard) ✔️ (preview) ✔️ (preview)
Tamil [ta] ta, ta-IN (standaard) ✔️ (preview) ✔️ (preview)
Zweeds [sv] sv, sv-SE (standaard) ✔️ (preview) ✔️ (preview)
Telugu te-IN (standaard) ✔️ (preview) ✔️ (preview)
Thai [th] th, th-TH (standaard) ✔️ (preview) ✔️ (preview)
Turks [tr] tr, tr-TR (standaard) ✔️ (preview) ✔️ (preview)
Oekraïens [uk] uk, uk-UA (standaard) ✔️ (preview) ✔️ (preview)
Urdu ur-PK (standaard) ✔️ (preview) ✔️ (preview)
Vietnamees [va] va, vi-VN (standaard) ✔️ (preview) ✔️ (preview)

Zie ook