Documenten zoeken (preview-REST API)

API-versie: 2021-04-30-Preview, 2020-06-30-Preview

Belangrijk

2021-04-30-Preview voegt toe:

  • 'semanticConfiguration' ondersteunt het bereik van semantische rangschikking naar 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' ondersteunt semantische herrankering en antwoorden.
  • 'spellingcontrole' schakelt spellingcorrectie in voor queryinvoer.
  • 'queryLanguage' is vereist voor zowel 'queryType=semantisch' als 'spelling'.
  • "featuresMode" pakt een zoekscore uit, 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 vormen. 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. Queryparameters worden opgegeven in de querytekenreeks in het geval van GET-aanvragen en in de aanvraagbody in het geval van 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 zeer groot is, kunnen filterexpressies niet willekeurig complex zijn. Zie de syntaxis van OData-expressies voor Azure Cognitive Search voor meer informatie over beperkingen voor filtercomplexiteit.

URI-parameters

Parameter Beschrijving
[servicenaam] Vereist. Stel deze naam in op de unieke, door de gebruiker gedefinieerde naam van uw zoekservice.
[indexnaam]/docs Vereist. Hiermee geeft u de documentenverzameling 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-versie Vereist. De huidige versie is api-version=2021-04-30-Preview. Zie API-versies voor meer versies.

Aanbevelingen voor URL-codering

Vergeet niet om specifieke queryparameters te coderen bij het rechtstreeks aanroepen van de GET REST API. Voor een bewerking Documenten zoeken is URL-codering mogelijk nodig 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 Cognitive Search .NET-clientbibliotheek, die codering voor u afhandelt.

Aanvraagheaders

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

Velden Beschrijving
Content-Type Vereist. Stel dit in op 'application/json'
api-key Vereist. Een unieke, door het systeem gegenereerde tekenreeks die de aanvraag verifieert bij uw zoekservice. Queryaanvragen voor de documentenverzameling kunnen een beheersleutel of querysleutel opgeven als de API-sleutel. De querysleutel wordt gebruikt voor alleen-lezenbewerkingen voor de documentenverzameling. U vindt de API-sleutel in het dashboard van uw zoekservice in de Azure Portal.

Aanvraagbody

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": #  
   }  

Vervolg van gedeeltelijke zoekopdrachten

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

De redenen waarom Azure Cognitive Search mogelijk vervolgtokens retourneren, zijn implementatiespecifiek en kunnen worden gewijzigd. Robuuste clients moeten altijd gereed zijn voor het afhandelen van gevallen waarin minder documenten dan verwacht worden geretourneerd 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 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 pagiering te bieden. Als u resultaten wilt bekijken, gebruikt u $top en $skip samen. Als u bijvoorbeeld pagina's van grootte 10 wilt hebben, 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 zoals hieronder van toepassing is.

Naam Type Beschrijving
antwoorden (preview) tekenreeks Optioneel. 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 van 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 voldoende informatie in de searchFields zijn om er een te formuleren. Bovendien moet de query zelf eruitzien als een vraag. Een trefwoordzoekopdracht retourneert geen antwoord.
api-versie tekenreeks Vereist. Versie van de REST API die wordt gebruikt voor de aanvraag. Zie API-versies voor 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) tekenreeks Optioneel. Geldige waarden zijn 'none' en 'extractive'. De standaardwaarde is 'none'. Deze parameter is alleen geldig als het querytype 'semantisch' is. Als deze is ingesteld op 'extractive', retourneert de query bijschriften die zijn geëxtraheerd uit sleutelpassages in de hoogst gerangschikte documenten. Wanneer bijschriften zijn ingesteld op 'extractive', wordt markering standaard ingeschakeld en kan worden geconfigureerd door het pipeteken '|' toe te voegen, gevolgd door de optie 'highlight-true</false>', zoals 'extractive|highlight-true'.
$count booleaans Optioneel. 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. Dit 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. Het aantal is nauwkeurig als de index stabiel is, maar documenten die actief worden toegevoegd, bijgewerkt of verwijderd, worden onder of overgerapportd. Als u alleen het aantal zonder documenten wilt ophalen, kunt u $top=0 gebruiken.
facet tekenreeks Optioneel. Een veld om door te facet. De tekenreeks kan parameters bevatten om het facet aan te passen, uitgedrukt als door komma's gescheiden naam:waardeparen. Wanneer deze parameter wordt aangeroepen met POST, wordt deze parameter facetten genoemd in plaats van facet.

Geldig zijn 'count', 'sort', 'values', 'interval' en 'timeoffset'.

"count" 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 parameter count kleiner is dan het aantal unieke termen, zijn de resultaten mogelijk niet nauwkeurig. Dit komt doordat facetquery's worden verdeeld over shards. U kunt het aantal instellen op nul of op een waarde die groter is dan of gelijk is aan het aantal unieke waarden in het facetable-veld om een nauwkeurig aantal te krijgen voor alle shards. De balans is toegenomen latentie.

'sorteren' kan worden ingesteld op 'count', '-count', 'value', '-value'. Gebruik aantal om aflopend te sorteren op aantal. Gebruik -count om oplopend te sorteren op aantal. Gebruik de waarde om oplopend te sorteren op waarde. Gebruik -value om aflopend te sorteren op waarde (bijvoorbeeld 'facet=category,count:3,sort:count' haalt de drie bovenste categorieën in facet op in aflopende volgorde op het aantal documenten met elke plaatsnaam). Als de top drie categorieën Budget, Motel en Luxe zijn en Budget 5 hits heeft, Heeft Motel 6 en Luxury heeft 4, dan staan de buckets 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 voldoen).

'waarden' kunnen worden ingesteld op door pijpscheidingstekens gescheiden numerieke 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, oplopende volgorde worden weergegeven om de verwachte resultaten op te halen.

'interval' is een geheel getalinterval dat groter is dan 0 voor getallen of minuten, uur, dag, week, maand, kwartaal, jaar voor datum-tijdwaarden. 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 werden gerenoveerd.

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

het aantal en de 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.

Interval-facetten op datumtijd worden berekend op basis van de UTC-tijd als tijdverschil niet is opgegeven. Bijvoorbeeld: voor 'facet=lastRenovationDate,interval:day', begint de daggrens om 00:00:00 UTC.
featuresMode (preview) booleaans Optioneel. Geldige waarden zijn 'ingeschakeld' en 'uitgeschakeld'. De standaardwaarde is uitgeschakeld. Een waarde die aangeeft of de resultaten queryresultatenfuncties moeten bevatten, die worden gebruikt om de relevantiescore van een document te berekenen ten opzichte van de query, zoals overeenkomsten per veld. Gebruik 'ingeschakeld' om meer queryresultatenfuncties beschikbaar te maken: score voor overeenkomsten per veld, frequentie van veldtermen en per veldaantal unieke tokens dat overeenkomt. Zie Gelijkenis en scoren voor meer informatie.
$filter tekenreeks Optioneel. Een gestructureerde zoekexpressie in de standaard-OData-syntaxis. Alleen filterbare velden kunnen in een filter worden gebruikt. Wanneer deze parameter wordt aangeroepen met POST, wordt deze parameter een naamfilter gegeven in plaats van $filter. Zie de syntaxis van OData-expressie voor Azure Cognitive Search voor meer informatie over de subset van de OData-expressie grammatica die Azure Cognitive Search ondersteunt.
hoogtepunt tekenreeks Optioneel. 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 Cognitive Search maximaal vijf markeringen per veld. De limiet kan per veld worden geconfigureerd door '-<max aantal markeringen>' toe te voegen volgens 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 tekenreeks Optioneel. Standaard ingesteld op "</em>". Een tekenreekstag die wordt toegevoegd aan de gemarkeerde term. Moet worden ingesteld met highlightPreTag. Gereserveerde tekens in DE URL moeten procent-gecodeerd zijn (bijvoorbeeld %23 in plaats van #).
highlightPreTag tekenreeks Optioneel. Standaard ingesteld op "</em>". Een tekenreekstag die vooraf gaat aan de gemarkeerde term. Moet zijn ingesteld met highlightPostTag. Gereserveerde tekens in URL moeten procentgecodeerd zijn (bijvoorbeeld %23 in plaats van #).
minimumCoverage geheel getal Optioneel. 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 (geen servicestatusproblemen of onderhoudsactiviteiten minder dekking). Onder de standaardinstelling retourneert minder dan volledige dekking HTTP-statuscode 503.

MinimumCoverage verlagen kan handig zijn als er 503-fouten optreden en u de kans op het succes van query's wilt verhogen, met name voor services die zijn geconfigureerd voor één replica. Als u minimumCoverage en Search instelt, wordt HTTP 200 geretourneerd en wordt een @search.coverage waarde opgenomen 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 levensvatbare risicobeperkingsstrategie zijn.
$orderby tekenreeks Optioneel. 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 zijn of een aanroep naar de functie geo.distance(). 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 in oplopende volgorde en laatste in aflopende volgorde weergegeven. De standaardwaarde is oplopende volgorde. De overeenkomsten 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) tekenreeks Optioneel. Geldige waarden zijn een ondersteunde taal. Standaard ingesteld op 'en-us'. Deze parameter moet worden ingesteld als u speller=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 ranghalen en een bijschrift of antwoord extraheren. De bibliotheken die worden gebruikt voor queryLanguage zijn onafhankelijk van andere op landinstellingen gebaseerde veldkenmerken, zoals taalanalyses die worden gebruikt voor indexering en zoeken in volledige tekst.
queryType tekenreeks Optioneel. Geldige waarden zijn 'eenvoudig', 'volledig' of 'semantisch' (preview). De standaardinstelling is 'eenvoudig'.

'eenvoudig' interpreteert queryreeksen met behulp van de eenvoudige querysyntaxis waarmee symbolen zoals +, *en "". Query's worden standaard geëvalueerd voor 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, die vergelijkbare functionaliteit biedt.

' semantisch" verbetert de nauwkeurigheid 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 beste 3 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 hoogst gerangschikte documenten te extraheren.
scoringParameter tekenreeks Optioneel. Geeft de waarden aan voor elke parameter die is gedefinieerd in een scorefunctie (zoals referencePointParameter) met behulp van 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 die bijvoorbeeld wordt aangeroepen "mylocation" , is '&scoringParameter=mylocation--122.2,44.8'. 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 het stimuleren van tags die komma's kunnen bevatten, kunt u escape-waarden in de lijst met enkele aanhalingstekens gebruiken. Als de waarden zelf enkele aanhalingstekens bevatten, kunt u deze ontsnappen door deze te verdubbelen. Stel dat u een parameter voor tagverhoging hebt aangeroepen "mytag" en u de tagwaarden 'Hello, O'Brien' en 'Smith' wilt verhogen, de querytekenreeksoptie zou dan scoreParameter&=mytag-'Hello, O''Brien',Smith' zijn. Aanhalingstekens zijn alleen vereist voor waarden die komma's bevatten.
scoringProfile tekenreeks Optioneel. De naam van een scoreprofiel voor het evalueren van overeenkomende scores voor overeenkomende documenten om de resultaten te sorteren.
scoringStatistics tekenreeks Optioneel. Geldige waarden zijn 'lokaal' of 'globaal'. Wordt standaard ingesteld op 'local'. 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 Cognitive Search. Scorestatistieken worden altijd lokaal berekend voor termen die fuzzy zoeken (~') gebruiken.
zoeken tekenreeks Optioneel. De tekst die moet worden gezocht. Alle doorzoekbare velden worden 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 (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 aposrophes, 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 tekenreeks Optioneel. 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 tekenreeks Optioneel. De lijst met door komma's gescheiden veldnamen om naar de opgegeven tekst te zoeken. Doelvelden moeten worden gemarkeerd als doorzoekbaar in het indexschema.
$select tekenreeks Optioneel. Een lijst met door komma's gescheiden velden die moeten worden opgenomen in de resultatenset. Alleen velden die als ophaalbaar zijn gemarkeerd, kunnen worden opgenomen in deze component. Als deze niet zijn opgegeven of 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) tekenreeks Optioneel. 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 maken voor meer informatie.
sessionId tekenreeks Optioneel. Met sessionId kunt u de consistentie van relevantiescores voor zoekservices met meerdere replica's 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 in replica's kan verstoren en de prestaties van de zoekservice nadelig kan beïnvloeden. De waarde die als sessionId wordt gebruikt, 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 Optioneel. 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) Tekenreeks Optioneel. Geldige waarden zijn 'none' en 'lexicon'. De standaardwaarde is 'none'. U kunt relevante overeenkomsten verbeteren door afzonderlijke zoekquerytermen te corrigeren. U kunt deze gebruiken voor eenvoudige, volledige en semantische querytypen. Als deze wordt gebruikt, is queryLanguage vereist voor de parameter voor de spellingcontrole. Zie Spellingcontrole toevoegen aan query's voor meer informatie en voorbeelden.
$top geheel getal Optioneel. Het aantal zoekresultaten dat moet worden opgehaald. Dit is standaard 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 Cognitive Search gebruikt 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 zoekdocumenten maximaal 50 resultaten retourneren als u $top niet 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 onderstaande voorbeelden . Als u ook 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.

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 onderliggende searchFields leiden tot het produceren van een antwoord. De @search.answers matrix met een sleutel, tekst en markeringen. De score is een indicator van de sterkte van het antwoord.

  • 'value' 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 is afkomstig van 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 de syntaxis van OData-expressies voor Azure Cognitive Search.

Voorbeeld: eenvoudig zoeken

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

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"  
    }  

Tip

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

Voorbeeld: volledige Lucene-zoekopdracht

Documenten zoeken in de index met behulp van Lucene-querysyntaxis (zie Lucene-querysyntaxis in Azure Cognitive Search). Deze query retourneert hotels waarin het categorieveld de term 'budget' bevat en alle doorzoekbare velden met de woordgroep 'onlangs gerenoveerd'. Documenten met de zin '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: semantisch zoeken

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: 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: facetzoekopdracht

Zoek in een facetzoekopdracht de index en haal facetten op voor categorieën, classificaties, 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. Facets 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 Rating 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 worden geretourneerd in een query. De standaardwaarde is 10, maar u kunt deze waarde verhogen of verlagen met behulp van de parameter count op het facetkenmerk. In dit voorbeeld worden facetten geretourneerd voor de stad, 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 de Engelse en Franse beschrijvingen naast elkaar bestaan in hetzelfde document, 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 van plan bent om een voor een query uit te voeren.

Voorbeeld: paggineringsresultaten

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: treffers markeren in resultaten

Zoek in de index en retourneer fragmenten met treffers:

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 zoekopdracht

Zoek 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: 'find by me' (verbeter de relevantie van nabijgelegen locaties

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':

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: query uitvoeren via volledige index in plaats van shards

Zoek documenten in de index terwijl u een consistente score wilt gebruiken ten opzichte van een lagere latentie. Met deze query worden documentfrequenties in de hele index berekend en wordt er een best gedaan om dezelfde replica voor alle query's binnen dezelfde 'sessie' te gebruiken, wat helpt bij het genereren van stabiele en reproduceerbare classificaties.

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 waarin de score tussen het overeenkomende document en de query wordt beschreven. De query berekent ook documentfrequenties in de hele index om consistentere scores 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 dat er ongeveer als volgt uitziet search.features :

    "@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 voor de hoofdtabel.

Koppeling 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, wordt 'es-us' standaard gebruikt. De parameter queryLanguage is vereist voor een queryaanvraag die 'queryType=semantisch' of 'speller=lexicon' bevat. Er is slechts één queryLanguage-waarde voor de hele aanvraag en die waarde wordt gebruikt voor semantische classificatie, 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 classificatie en bijschriften inschakelen, een semantisch antwoord retourneren en spellingcontrole toevoegen aan query's voor meer informatie over het gebruik van elke functie.

De aanduiding (preview)' geeft aan dat validatietests voor alle functies (semantische classificatie, bijschriften, antwoorden en spellingcontrole) doorlopend of in behandeling zijn. We raden u aan om alle taalvarianten in de volgende tabel te gebruiken, maar u wordt aangeraden meer voorbeelden van voorbeeldtalen te testen om ervoor te zorgen dat de resultaten geldig zijn voor uw inhoud. Talen met een groene controle en geen preview-aanduiding zijn gevalideerd met gelijkwaardige gegevenssets, met meetbare winst in relevantie.

Taal queryLanguage Semantische rangschikking en bijschriften Semantisch antwoord Speller
Engels [en] en-US (standaard), en-GB, en-IN, en-CA, en-AU ✔️ ✔️ ✔️ (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 (standaard), es-MX ✔️ ✔️ ✔️ (es, es-ES)
Italiaans [it] it-IT (standaard) ✔️ ✔️
Japans [ja] ja, ja-JP (standaard) ✔️ ✔️ (preview)
Chinees [zh] zh, zh-CN (standaard), zh-TW ✔️ ✔️ (preview)
Portugees [pt] pt, pt-BR (standaard), pt-PT ✔️ ✔️ (preview)
Nederlands [nl] nl, nl-BE, nl-NL (standaard) ✔️ (preview) ✔️ (preview) ✔️ (nl, nl-NL)
Arabisch [ar] ar, ar-SA (standaard), ar-EG, ar-MA. ar-KW, ar-JO ✔️ (preview) ✔️ (preview)
Armeens hy-AM (standaard) ✔️ (preview) ✔️ (preview)
Bengaals 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 (standaard), hr-BA ✔️ (preview) ✔️ (preview)
Tsjechisch [cs] cs, cs-CZ (standaard) ✔️ (preview) ✔️ (preview)
Deens [da] da, da-DK (standaard) ✔️ (preview) ✔️ (preview)
Estisch [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 [hallo] 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)
Malayalam ml-IN (standaard) ✔️ (preview) ✔️ (preview)
Maleisisch [ms] ms, ms-MY (standaard), ms-BN ✔️ (preview) ✔️ (preview)
Mahrati mr-IN (standaard) ✔️ (preview) ✔️ (preview)
Noors [nee] 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 (standaard), 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 (standaard) ✔️ (preview) ✔️ (preview)
Turks [tr] tr, tr-TR (standaard) ✔️ (preview) ✔️ (preview)
Oekraïens [uk] uk, uk-UA (standaard) ✔️ (preview) ✔️ (preview)
Urdu your-PK (standaard) ✔️ (preview) ✔️ (preview)
Vietnamees [va] va, vi-VN (standaard) ✔️ (preview) ✔️ (preview)

Zie ook