Sök dokument (förhandsversion av REST API)

Gäller för: 2023-07-01-Preview, 2021-04-30-Preview, 2020-06-30-Preview

Viktigt

2023-07-01-Preview lägger till:

  • Frågeparametern "vectors" anger eventuella vektorfrågebegäranden. Varje objekt ska innehålla vektorrepresentationen av frågan, "k" antal närmaste grannar som ska returneras i resultaten och de vektorfält som ska användas under frågekörningen.

2021-04-30-Preview lägger till:

  • "semanticConfiguration" stöder omfångs-semantisk rangordning för specifika fält.
  • "captions" returnerar fraser som extraherats från viktiga avsnitt i de högst semantiskt rankade dokumenten.

2020-06-30-Preview lägger till:

  • "queryType=semantic" stöder semantisk omrankning och svar.
  • "searchFields" i en semantisk fråga upprättar prioritetsordningen för fält som används för att formulera bildtexter och svar. Den här metoden ersattes av "semanticConfiguration" i 2021-04-30-Preview och är nu föråldrad.
  • "speller" aktiverar stavningskorrigering vid frågeindata.
  • "queryLanguage" krävs för både "queryType=semantic" och "speller".
  • "featuresMode" packar upp en sökpoäng, rapporterar om termfrekvens per fält, likhetspoäng per fält och antal unika matchningar per fält.

En frågebegäran riktar sig mot dokumentsamlingen för ett enda index i en söktjänst. Den innehåller parametrar som definierar matchningskriterierna och parametrar som formar svaret. Du kan också använda ett indexalias för att rikta ett visst index i stället för att använda själva indexnamnet.

Du kan använda GET eller POST för de flesta frågor, men du måste använda POST för vektorsökning eftersom vektorfrågeparametrar inte passar in i en URI. Frågeparametrar anges i frågesträngen för GET-begäranden och i begärandetexten för POST-begäranden.

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

Om du använder POST lägger du till åtgärden "sök" som en 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]  

När det anropas med GET får längden på begärande-URL:en inte överstiga 8 kB. Den här längden räcker för de flesta program. Vissa program skapar dock stora frågor, särskilt när OData-filteruttryck används. För dessa program är HTTP POST ett bättre alternativ eftersom det tillåter större filter än GET.

Med POST är antalet satser i ett filter den begränsande faktorn, inte storleken på den råa filtersträngen eftersom storleksgränsen för begäran för POST är cirka 16 MB. Även om storleksgränsen för POST-begäran är stor kan filteruttryck inte vara godtyckligt komplexa. Mer information om begränsningar för filterkomplexitet finns i OData-uttryckssyntax för Azure AI Search.

URI-parametrar

Parameter Beskrivning
tjänstnamn Krävs. Ange det här namnet till det unika, användardefinierade namnet på söktjänsten.
indexnamn/dokument Krävs. Anger dokumentsamlingen för ett namngivet index. Namnet på ett indexalias kan också användas i stället för indexnamnet.
frågeparametrar Frågeparametrar anges på URI:n för GET-begäranden och i begärandetexten för POST-begäranden.
api-version Krävs. Den aktuella versionen är 2023-07-01-Preview. Se API-versioner för fler versioner.

Rekommendationer för URL-kodning

Kom ihåg att URL-koda specifika frågeparametrar när du anropar GET REST API direkt. För en åtgärd med sökdokument kan URL-kodning vara nödvändigt för följande frågeparametrar:

  • sök
  • $filter
  • Aspekt
  • highlightPreTag
  • highlightPostTag

URL-kodning rekommenderas endast för enskilda parametrar. Om du oavsiktligt URL-kodar hela frågesträngen (allt efter ?), avbryts begäranden.

Dessutom är URL-kodning endast nödvändigt när du anropar REST API direkt med GET. Ingen URL-kodning krävs när du använder POST, eller när du använder Azure AI Search .NET-klientbiblioteket, som hanterar kodning åt dig.

Rubriker för begäran

I följande tabell beskrivs nödvändiga och valfria begärandehuvuden.

Fält Description
Content-Type Krävs. Ange det här värdet till "application/json"
api-key Valfritt om du använder Azure-roller och en ägartoken anges på begäran, annars krävs en nyckel. En API-nyckel är en unik, systemgenererad sträng som autentiserar begäran till söktjänsten. Frågebegäranden mot dokumentsamlingen kan ange antingen en administratörsnyckel eller en frågenyckel som API-nyckel. Frågenyckeln används för skrivskyddade åtgärder mot dokumentsamlingen. Mer information finns i Ansluta till Azure AI Search med nyckelautentisering .

Begärandetext

För GET: Ingen.

För 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"
      }
     ]
   }  

Fortsättning på partiella söksvar

Ibland kan Azure AI Search inte returnera alla begärda resultat i ett enda söksvar. Ett partiellt svar kan inträffa av olika skäl, till exempel när frågan returnerar för många dokument genom att inte ange $top eller genom att ange ett värde för $ top som är för stort. I sådana fall innehåller Azure AI Search kommentaren @odata.nextLink i svarstexten och även @search.nextPageParameters om det var en POST-begäran. Du kan använda värdena för dessa anteckningar för att formulera en annan sökbegäran för att hämta nästa del av söksvaret. Det här beteendet kallas en fortsättning på den ursprungliga sökbegäran och anteckningarna kallas fortsättningstoken. Se exemplet i avsnittet Svar för mer information om syntaxen för dessa anteckningar och var de visas i svarstexten.

Orsakerna till att Azure AI Search kan returnera fortsättningstoken är implementeringsspecifika och kan komma att ändras. Robusta klienter bör alltid vara redo att hantera fall där färre dokument än förväntat returneras och en fortsättningstoken ingår för att fortsätta hämta dokument. Observera också att du måste använda samma HTTP-metod som den ursprungliga begäran för att kunna fortsätta. Om du till exempel har skickat en GET-begäran måste eventuella fortsättningsförfrågningar som du skickar också använda GET (och på samma sätt för POST).

Anteckning

Syftet med @odata.nextLink och @search.nextPageParameters är att skydda tjänsten från frågor som begär för många resultat, inte för att tillhandahålla en allmän mekanism för växling. Om du vill bläddra igenom resultat använder du $top och $skip tillsammans. Om du till exempel vill ha sidor med storlek 10 ska din första begäran ha $top=10 och $skip=0, den andra begäran ska ha $top=10 och $skip=10, den tredje begäran ska ha $top=10 och $skip=20 och så vidare.

Frågeparametrar

En fråga accepterar flera parametrar på URL:en när den anropas med GET och som JSON-egenskaper i begärandetexten när den anropas med POST. Syntaxen för vissa parametrar skiljer sig något mellan GET och POST. Dessa skillnader anges i följande tabell.

Namn Typ Description
svar (förhandsversion) sträng Valfritt. Giltiga värden är "none" och "extractive". Standardvärdet är "none". Den här parametern är endast giltig om frågetypen är "semantisk". När den är inställd på "extractive" formulerar och returnerar frågan svar från nyckelavsnitt i de högst semantiskt rankade dokumenten. Standardvärdet är ett svar, men du kan ange upp till 10 genom att lägga till ett antal. Till exempel returnerar "answers": "extractive|count-3" tre svar. För att ett svar ska returneras måste det finnas ordagrant innehåll i målfältet som ser ut som ett svar. Språkmodellerna som används för svar tränas att känna igen svar, inte generera dem. Dessutom måste själva frågan se ut som en fråga.
api-version sträng Krävs. Version av REST-API:et som används för begäran. En lista över versioner som stöds finns i API-versioner. För den här åtgärden anges API-versionen som en URI-parameter oavsett om du anropar sökdokument med GET eller POST.
undertexter (förhandsversion) sträng Valfritt. Giltiga värden är "none" och "extractive". Standardvärdet är "none". Den här parametern är endast giltig om frågetypen är "semantisk". När frågan är inställd på "extractive" returneras undertexter som extraherats från nyckelpassagen i de högst rankade dokumenten. När undertexter är inställda på "extractive" är markering aktiverat som standard och kan konfigureras genom att lägga till pipe-tecknet |följt av alternativet "highlight-true</false>", till exempel "extractive|highlight-true".
$count boolean Valfritt. Giltiga värden är "true" eller "false". Standardvärdet är "false". När den här parametern anropas med POST får den namnet count i stället för $count. Anger om det totala antalet resultat ska hämtas. Det här värdet är antalet dokument som matchar sök- och $filter parametrarna och ignorerar $top och $skip. Om det här värdet anges till "true" kan prestanda försämras. Antalet är korrekt om indexet är stabilt, men kommer under eller överrapportera alla dokument som aktivt läggs till, uppdateras eller tas bort. Om du bara vill få antalet utan dokument kan du använda $top=0.
fasetter eller fasetter sträng Valfritt. Ett fält att fasettera efter, där fältet tilldelas som "facetable". När det anropas med GET facet är ett fält (facet: field1). När den anropas med POST namnges facets den här parametern i stället för facet och anges som en matris (facets: [field1, field2, field3]). Strängen kan innehålla parametrar för att anpassa fasettering, uttryckt som kommaavgränsade namn/värde-par.

Giltiga värden är "count", "sort", "values", "interval" och "timeoffset".

"count" är det maximala antalet fasetterade termer. standardvärdet är 10. Det finns ingen övre gräns för antalet termer, men högre värden försämrar prestanda, särskilt om det fasetterade fältet innehåller ett stort antal unika termer. Till exempel får "facet=category,count:5" de fem främsta kategorierna i fasetteringsresultat. Om parametern count är mindre än antalet unika termer kanske resultatet inte är korrekt. Detta beror på hur fasetteringsfrågor distribueras över shards. Om du vill få ett korrekt antal för alla shards kan du ange antal till noll eller till ett värde som är större än eller lika med antalet unika värden i det fasettbara fältet. Kompromissen är ökad svarstid.

"sort" kan anges till "count", "-count", "value", "-value". Använd count för att sortera fallande efter antal. Använd -count för att sortera stigande efter antal. Använd värdet för att sortera stigande efter värde. Använd -value för att sortera fallande efter värde (till exempel "facet=category,count:3,sort:count" hämtar de tre främsta kategorierna i fasetteringsresultat i fallande ordning efter antalet dokument med varje ortsnamn). Om de tre främsta kategorierna är Budget, Motel och Luxury och Budget har fem träffar, Motel har sex och Luxury har fyra, är bucketarna i ordning Motel, Budget, Luxury. För -value skapar "facet=rating,sort:-value" buckets för alla möjliga klassificeringar, i fallande ordning efter värde (om klassificeringarna till exempel är från 1 till 5 sorteras bucketarna 5, 4, 3, 2, 1, oavsett hur många dokument som matchar varje klassificering).

"values" kan anges till pipe-avgränsade numeriska värden eller Edm.DateTimeOffset-värden som anger en dynamisk uppsättning fasettpostvärden (till exempel "facet=baseRate,values:10 | 20" producerar tre buckets: en för basränta 0 upp till men inte inklusive 10, en för 10 upp till men inte inklusive 20 och en för 20 och högre). Strängen "facet=lastRenovationDate,values:2010-02-01T00:00:00Z" producerar två buckets: en för hotell som renoverats före februari 2010 och en för hotell som renoverats den 1 februari 2010 eller senare. Värdena måste anges i sekventiell, stigande ordning för att få de förväntade resultaten.

"intervall" är ett heltalsintervall som är större än 0 för tal, eller minut, timme, dag, vecka, månad, kvartal, år för datumtidsvärden. Till exempel producerar "facet=baseRate,interval:100" buckets baserat på bashastighetsintervall med storleken 100. Om baspriserna är mellan 60 och 600 USD finns det bucketar för 0-100, 100-200, 200-300, 300-400, 400-500 och 500-600. Strängen "facet=lastRenovationDate,interval:year" producerar en bucket för varje år när hotellen renoverades.

"timeoffset" kan anges till ([+-]hh:mm, [+-]hhmm eller [+-]hh). Om den används måste parametern timeoffset kombineras med alternativet Intervall och endast när den tillämpas på ett fält av typen Edm.DateTimeOffset. Värdet anger UTC-tidsförskjutningen för att ta hänsyn till vid inställning av tidsgränser. Exempel: "facet=lastRenovationDate,interval:day,timeoffset:-01:00" använder daggränsen som börjar kl. 01:00:00 UTC (midnatt i måltidszonen).

count och sort kan kombineras i samma fasetteringsspecifikation, men de kan inte kombineras med intervall eller värden, och intervall och värden kan inte kombineras.

Intervallfasetter på datumtiden beräknas baserat på UTC-tiden om tidsförskjutningen inte har angetts. Till exempel: för "facet=lastRenovationDate,interval:day" börjar daggränsen kl. 00:00:00 UTC.
featuresMode (förhandsversion) boolean Valfritt. Giltiga värden är "aktiverade" och "inaktiverade". Standardvärdet är "inaktiverat". Ett värde som anger om resultatet ska innehålla frågeresultatfunktioner som används för att beräkna relevanspoängen för ett dokument i förhållande till frågan, till exempel likhet per fält. Använd "aktiverad" för att exponera fler frågeresultatfunktioner: likhetspoäng per fält, per fälttermfrekvens och antal unika token per fält som matchas. Mer information finns i Likhet och bedömning.
$filter sträng Valfritt. Ett strukturerat sökuttryck i OData-standardsyntax. Endast filterbara fält kan användas i ett filter. När den här parametern anropas med POST får den namnet filter i stället för $filter. Se OData-uttryckssyntax för Azure AI Search för mer information om delmängden av OData-uttryckets grammatik som stöds av Azure AI Search.
Markera sträng Valfritt. En uppsättning kommaavgränsade fältnamn som används för träffhöjdpunkter. Endast sökbara fält kan användas för träffmarkering. Som standard returnerar Azure AI Search upp till fem markeringar per fält. Gränsen kan konfigureras per fält genom att lägga till "-<max antal markeringar>" efter fältnamnet. Till exempel returnerar "highlight=title-3,description-10" upp till tre markerade träffar från rubrikfältet och upp till 10 träffar från beskrivningsfältet. Det maximala antalet markeringar måste vara ett heltal mellan 1 och 1 000.
highlightPostTag sträng Valfritt. Standardvärdet är "</em>". En strängtagg som lägger till i den markerade termen. Måste anges med highlightPreTag. Reserverade tecken i URL:en måste vara procentkodade (till exempel %23 i stället för #).
highlightPreTag sträng Valfritt. Standardvärdet är "</em>". En strängtagg som förbereder den markerade termen. Måste anges med highlightPostTag. Reserverade tecken i URL:en måste vara procentkodade (till exempel %23 i stället för #).
minimumCoverage heltal Valfritt. Giltiga värden är ett tal mellan 0 och 100, vilket anger procentandelen av indexet som måste vara tillgängligt för att hantera frågan innan den kan rapporteras som lyckad. Standardvärdet är "100".

100 procents täckning innebär att alla shards svarade på begäran (varken servicehälsoproblem eller underhållsaktiviteter minskade täckningen). Under standardinställningen returnerar mindre än fullständig täckning HTTP-statuskod 503.

Att sänka minimumCoverage kan vara användbart om 503 fel inträffar och du vill öka sannolikheten för att frågan lyckas, särskilt för tjänster som har konfigurerats för en replik. Om du anger minimumCoverage och Sökningen lyckas returneras HTTP 200 och innehåller ett @search.coverage värde i svaret som anger procentandelen av indexet som ingick i frågan. I det här scenariot är det inte säkert att alla matchande dokument finns med i sökresultaten, men om söktillgängligheten är viktigare än träffsäkerhet kan det vara en användbar riskreduceringsstrategi att minska täckningen.
$orderby sträng Valfritt. En lista med kommaavgränsade uttryck som resultatet ska sorteras efter. När den anropas med POST heter den här parametern orderby i stället för $orderby. Varje uttryck kan vara antingen ett fältnamn eller ett anrop till funktionen geo.distance(). Varje uttryck kan följas av "asc" för att indikera stigande och "desc" för att indikera fallande. Om det finns null-värden i sorteringsfältet visas nullvärden först i stigande ordning och sist i fallande ordning. Standardvärdet är stigande ordning. Oavgjort kommer att brytas av matchningspoängen för dokument. Om ingen $orderby anges är standardsorteringsordningen fallande efter dokumentmatchningspoäng. Det finns en gräns på 32 satser för $orderby.
queryLanguage (förhandsversion) sträng Valfritt. Giltiga värden är ett språk som stöds. Standardvärdet är "en-us". Den här parametern måste anges om du använder antingen speller=lexicon eller queryType=semantic. Språket som anges i queryLanguage används för både stavningskontroll och av de semantiska modeller som ändrar rangordning av resultat och extraherar en bildtext eller ett svar. Biblioteken som används för queryLanguage är oberoende av andra språkbaserade fältattribut, till exempel språkanalysverktyg som används för indexering och fulltextsökning.
queryType sträng Valfritt. Giltiga värden är "simple", "full" eller "semantic" (förhandsversion). Standardvärdet är "enkelt". Det här värdet ignoreras för vektorsökning, men gäller för textsökning i hybridscenarier.

"simple" tolkar frågesträngar med hjälp av den enkla frågesyntaxen som tillåter symboler som +, *och "". Frågor utvärderas i alla sökbara fält (eller fält som anges i searchFields) i varje dokument som standard.

"full" tolkar frågesträngar med hjälp av den fullständiga Lucene-frågesyntaxen som tillåter fältspecifika och viktade sökningar. Intervallsökning i Lucene-frågespråket stöds inte till förmån för $filter, som erbjuder liknande funktioner."

semantik" förbättrar precisionen för sökresultat genom att rangordna de 50 bästa matchningarna med hjälp av en rangordningsmodell som tränats på Bing-corpus för frågor som uttrycks på naturligt språk i stället för nyckelord. Om du anger frågetypen till semantisk måste du också ange queryLanguage och semanticConfiguration. Du kan också ange svar om du vill returnera de tre främsta svaren om frågeindata har formulerats på naturligt språk ("vad är en ...), och du kan välja att ange undertexter för att extrahera nyckelpassameningar från de högst rankade dokumenten.
scoringParameter sträng Valfritt. Anger värdena för varje parameter som definierats i en bedömningsfunktion (till exempel referencePointParameter) med formatet "name-value1,value2,..." När den här parametern anropas med POST får den namnet scoringParameters i stället för scoringParameter. Du kan också ange den som en JSON-matris med strängar där varje sträng är ett separat namn/värde-par.

För bedömningsprofiler som innehåller en funktion separerar du funktionen från indatalistan med ett - tecken. En funktion med namnet "mylocation" skulle till exempel vara "&scoringParameter=mylocation--122.2,44.8". Det första strecket separerar funktionsnamnet från värdelistan, medan det andra strecket är en del av det första värdet (longitud i det här exemplet).

För bedömningsparametrar, till exempel för tagghöjande som kan innehålla kommatecken, kan du undvika sådana värden i listan med enkla citattecken. Om själva värdena innehåller enkla citattecken kan du undvika dem genom att fördubbla dem. Anta att du har en taggförstärkningsparameter som heter "mytag" och du vill öka taggvärdena "Hello, O'Brien" och "Smith" så skulle frågesträngsalternativet då vara "&scoringParameter=mytag-'Hello, O'Brien',Smith". Citattecken krävs endast för värden som innehåller kommatecken.
scoringProfile sträng Valfritt. Namnet på en bedömningsprofil för att utvärdera matchningspoäng för matchande dokument för att sortera resultaten.
scoringStatistics sträng Valfritt. Giltiga värden är "lokala" eller "globala". Standardvärdet är "lokal". Ange om bedömningsstatistik ska beräknas, till exempel dokumentfrekvens, globalt (över alla shards) för mer konsekvent bedömning eller lokalt (på det aktuella fragmentet) för kortare svarstid. Se Bedömningsstatistik i Azure AI Search. Bedömningsstatistik beräknas alltid lokalt för termer som använder fuzzy-sökning (~).
sök sträng Valfritt. Texten att söka efter. Det här värdet ignoreras för vektorsökning, men gäller för textsökning i hybridscenarier. I REST-API:er genomsöks alla sökbara fält som standard om inte searchFields anges. I indexet tokeniseras text i ett sökbart fält, så flera termer kan avgränsas med tomt utrymme (till exempel: 'search=hello world'). Om du vill matcha en term använder du * (detta kan vara användbart för booleska filterfrågor). Om du utelämnar den här parametern har det samma effekt som att ställa in den på *. Mer information om söksyntaxen finns i Enkel frågesyntax .

Resultaten kan ibland vara överraskande när du frågar över sökbara fält. Tokeniseraren innehåller logik för att hantera ärenden som är gemensamma för engelsk text som apostrofer, kommatecken i siffror och så vidare. Till exempel matchar 'search=123,456' en enda term '123,456' i stället för de enskilda termerna '123' och '456', eftersom kommatecken används som tusentalsavgränsare för stora tal på engelska. Därför rekommenderar vi att du använder tomt utrymme i stället för skiljetecken för att avgränsa termer i sökparametern.
searchMode sträng Valfritt. Giltiga värden är "any" eller "all" Defaults to "any". Anger om några eller alla söktermer måste matchas för att kunna räkna dokumentet som en matchning.
searchFields sträng Valfritt. Listan över kommaavgränsade fältnamn för att söka efter den angivna texten. Målfält måste markeras som sökbara i indexschemat och måste vara av typen Edm.String, Edm.ComplexTypeeller Collection(Edm.String).
$select sträng Valfritt. En lista över kommaavgränsade fält som ska inkluderas i resultatuppsättningen. Endast fält som har markerats som hämtningsbara kan tas med i den här satsen. Om det är ospecificerat eller inställt på *inkluderas alla fält som markerats som hämtningsbara i schemat i projektionen. När den här parametern anropas med POST namnges den i stället för $select.
semanticConfiguration (förhandsversion) sträng Valfritt. Krävs om queryType="semantik". Namnet på den semantiska konfigurationen som visar vilka fält som ska användas för semantisk rangordning, undertexter, markeringar och svar. Mer information finns i Skapa en semantisk fråga.
Sessionid sträng Valfritt. Genom att använda sessionId kan du förbättra relevanspoängkonsekvensen för söktjänster med flera repliker. I konfigurationer med flera repliker kan det finnas små skillnader mellan relevanspoäng för enskilda dokument för samma fråga. När ett sessions-ID anges gör tjänsten ett bästa försök att dirigera en viss begäran till samma replik för den sessionen. Var försiktig så att återanvändning av samma sessions-ID-värden upprepade gånger kan störa belastningsutjämningen av begäranden mellan repliker och negativt påverka söktjänstens prestanda. Värdet som används som sessionId kan inte börja med ett _-tecken. Om en tjänst inte har några repliker har den här parametern ingen effekt på prestanda eller poängkonsekvens.
$skip heltal Valfritt. Antalet sökresultat att hoppa över. När den här parametern anropas med POST får den namnet skip i stället för $skip. Det här värdet får inte vara större än 100 000. Om du behöver genomsöka dokument i följd, men inte kan använda $skip på grund av den här begränsningen, bör du överväga att använda $orderby i ett fält som har unika värden för varje dokument i indexet (till exempel dokumentnyckeln) och $filter med en intervallfråga i stället.
stavningskontroll (förhandsversion) Sträng Valfritt. Giltiga värden är "none" och "lexicon". Standardvärdet är "none". Förbättra träffsäkerheten genom att stavningsredigera enskilda sökord. Du kan använda den på enkla, fullständiga och semantiska frågetyper. Om den används kräver parametern speller queryLanguage. Mer information och exempel finns i Lägga till stavningskontroll i frågor.
$top heltal Valfritt. Antalet sökresultat som ska hämtas. Standardvärdet är 50. När den här parametern anropas med POST får den namnet top i stället för $top. Om du anger ett värde som är större än 1 000 och det finns fler än 1 000 resultat returneras endast de första 1 000 resultaten, tillsammans med en länk till nästa resultatsida (se "@odata.nextLink" i exemplet nedan).

Azure AI Search använder sidindelning på serversidan för att förhindra att frågor hämtar för många dokument samtidigt. Standardstorleken för sidan är 50, medan den maximala sidstorleken är 1 000. Det innebär att som standard returnerar sökdokument högst 50 resultat om du inte anger $top. Om det finns fler än 50 resultat innehåller svaret information för att hämta nästa sida med högst 50 resultat (se "@odata.nextLink" och "@search.nextPageParameters" i exemplen nedan. Om du anger ett värde större än 1 000 för $top och det finns fler än 1 000 resultat returneras endast de första 1 000 resultaten, tillsammans med information för att hämta nästa sida med högst 1 000 resultat.
vektorer (förhandsversion) matris Valfritt. Objekttypen i matrisen är en vektorfråga. Frågeparametrarna för vektorfrågor.

"value" är vektorrepresentationen av en sökfråga. Den här representationen måste skapas externt. Azure AI Search skapar inte inbäddningar.

"k" är ett heltal som anger antalet närmaste grannar som ska returneras som toppträffar. Standard är 50. Minimivärdet är 1 och maxvärdet är 10 000.

"fält" är ett kommaavgränsat listfältnamn som innehåller vektordata. Endast fält av typen Collection(Edm.Single) kan tas med i listan "fält".

Svarsåtgärder

Statuskod: 200 OK returneras för ett lyckat svar. Det finns två exempelsvar i den här artikeln, ett för semantisk sökning och funktionerMode.

Exempelsvar för semantisk fråga

Det första exemplet visar det fullständiga svaret för det översta resultatet för den semantiska frågan "hur bildar moln".

  • "@search.answers" visas när du anger svarsparametern och när frågan och målfälten i indexet innehåller innehåll som kan identifieras som ett svar. Matrisen @search.answers som har en nyckel, text och markeringar. Poängen är en indikator på svarets styrka.

  • "value" är brödtexten i svaret. @search.rerankerScore tilldelas av den semantiska rangordningsalgoritmen och används för att rangordna resultat (@search.score kommer från BM25-likhetsalgoritmen, som används vid bedömning av de första resultaten). Undertexter omfattar oformaterad text och markerade versioner. Det här exemplet skapades med hjälp av OCR och entitetsigenkänning. Fält för det extraherade och sammanfogade innehållet ingår i svaret.

{
    "@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": []
        }
    ]
}

Exempelsvar för featuresMode

Det här exemplet visar "@search.features"-utdata från en fråga som innehåller 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)
  }

Exempel

Du hittar fler exempel i OData-uttryckssyntax för Azure AI Search.

Exempel: enkel sökning

Hitta dokument i indexet med hjälp av enkel frågesyntax. Den här frågan returnerar hotell där sökbara fält innehåller termerna "komfort" och "plats", men inte "motell":

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

Tips

Användningen av searchMode=all åsidosätter standardvärdet searchMode=any, vilket säkerställer att -motel betyder "AND NOT" i stället för "OR NOT". Utan searchMode=allfår du "OR NOT" som expanderar snarare än begränsar sökresultat, och det kan vara kontraintuitivt för vissa användare.

Exempel: fullständig Lucene-sökning

Hitta dokument i indexet med Lucene-frågesyntax (se Lucene-frågesyntax i Azure AI Search). Den här frågan returnerar hotell där kategorifältet innehåller termen "budget" och alla sökbara fält som innehåller frasen "nyligen renoverad". Dokument som innehåller frasen "nyligen renoverad" rangordnas högre som ett resultat av termen boost-värde (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"  
}  

Exempel: semantisk sökning

Anropa den semantiska rankningsmodellen med svar, bildtexter och markerat innehåll. Svaret för den här frågan finns i föregående avsnitt.

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

Exempel: vektorsökning

För ett index som har fält av typen Collection(Edm.Single) och en vektorkonfiguration kan du ange vektorfrågeparametrar. Vektorfrågeparametrar omfattar de vektorfält som är inom omfånget för frågan, antalet "k" toppträffar som ska returneras och en vektorrepresentation av frågeindata.

Att lägga till en "select"-parameter är användbart om indexet innehåller textfält. Matchning och relevans baseras på vektorer, men fält som innehåller innehåll som kan läsas av människor är mer användbara för någon som läser resultatet. Du kan också skriva kod som konverterar vektordata i sökresultatet till text.

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

Exempel: orderby

Sök i indexet och returnera resultat sorterade efter datum i fallande ordning.

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

Exempel: filtrera med ett OData-uttryck

Hämta dokument som matchar ett specifikt filteruttryck:

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

Exempel: fasanvänd sökning

I en fasanvänd sökning söker du i indexet och hämtar faser efter kategorier, klassificeringar, taggar samt objekt med baseRate i specifika intervall.

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

Observera att den sista aspekten finns i ett underfält. Fasor räknar det överordnade dokumentet (Hotell) och inte mellanliggande underdokument (Rum), så svaret avgör antalet hotell som har några rum i varje prisbucket.

Exempel: Begränsa en aspektfråga

Använd ett filter och begränsa det tidigare faserade frågeresultatet när användaren har valt Omdöme 3 och kategorin "Motel".

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

Exempel: fasanvänd sökning med gränser för varje kategori

I en aspektisk sökning anger du en övre gräns för unika termer som returneras i en fråga. Standardvärdet är 10, men du kan öka eller minska det här värdet med hjälp av parametern count i attributet facet. Det här exemplet returnerar faser för stad, begränsat till 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" ]  
    }  

Exempel: sökning i fält

Sök i indexet i specifika fält (till exempel ett språkfält)

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

Sök i indexet i flera fält. Du kan till exempel lagra och fråga sökbara fält på flera språk, allt inom samma index. Om engelska och franska beskrivningar samexisterar i samma dokument kan du returnera alla eller alla i frågeresultaten:

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

Du kan bara köra frågor mot ett index i taget. Skapa inte flera index för varje språk om du inte planerar att köra frågor mot ett i taget.

Exempel: växlingsresultat

Hämta den första sidan med objekt (sidstorleken är 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  
    }  

Hämta den andra sidan med objekt (sidstorleken är 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  
    }  

Exempel: begränsa fält i en resultatuppsättning

Hämta en specifik uppsättning fält:

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

Exempel: träffmarkering i resultat

Sök i indexet och returnera fragment med träffhöjdpunkter:

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

Exempel: Geospatial sökning

Sök i indexet och returnera dokument sorterade från närmare till längre bort från en referensplats:

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

Exempel: "hitta efter mig" (öka relevansen för närliggande platser

Sök i indexet förutsatt att det finns en bedömningsprofil som kallas "geo" med två avståndsbedömningsfunktioner, en som definierar en parameter med namnet "currentLocation" och en som definierar en parameter som kallas "lastLocation". I följande exempel har "currentLocation" en avgränsare av ett enda bindestreck (-). Den följs av longitud- och latitudkoordinater, där longitud är ett negativt värde.

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

Exempel: fråga över fullständigt index i stället för shards

Hitta dokument i indexet samtidigt som konsekvent bedömning prioriteras framför kortare svarstider. Den här frågan beräknar dokumentfrekvenser i hela indexet och gör ett bästa försök att rikta in samma replik för alla frågor inom samma "session", vilket hjälper till att generera en stabil och reproducerbar rangordning.

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

Exempel: bedömningsstatistik (featuresMode)

Leta upp dokument i indexet och returnera en lista med informationshämtningsfunktioner för varje resultat som beskriver poängsättningen mellan det matchade dokumentet och frågan. Frågan beräknar också dokumentfrekvenser i hela indexet för att ge mer konsekvent bedömning.

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

Ett exempel på ett svar som innehåller search.features ser ut ungefär så här:

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

Definitioner

Det här avsnittet innehåller information om parametrar som är för komplexa att ta upp i huvudtabellen.

Länk Description
queryLanguage Lista över språk som stöds för stavning och semantisk sökning.

queryLanguage

Giltiga värden för parametern queryLanguage finns i följande tabell i kolumnen "queryLanguage" och är inte skiftlägeskänsliga. Standardvärdet för parametern som helhet är "en-us". I varje språk finns det en standardvariant för varje språkkod med två tecken. Om du till exempel anger "es" används "es-us" som standard. Parametern queryLanguage krävs för en frågebegäran som innehåller "queryType=semantic" eller "speller=lexicon". Det finns bara ett queryLanguage-värde för hela begäran och det värdet används för semantisk rangordning, undertexter, svar och stavning (det finns ingen åsidosättning för enskilda funktioner).

För närvarande varierar språkstödet beroende på funktion. Endast engelska, spanska, franska och tyska stöds för den fullständiga uppsättningen funktioner, men observera att stavningskontroll implementerar färre varianter.

Om du anger en språkkod som inte stöds av en viss funktion, till exempel EN-GB med stavning, returnerar tjänsten HTTP 400.

Mer information om hur du använder varje funktion finns i Aktivera semantisk rangordning och undertexter, Returnera ett semantiskt svar och Lägg till stavningskontroll i frågor.

Beteckningen "(preview)" anger att valideringstestning för alla funktioner (semantisk rangordning, undertexter, svar och stavningskontroll) antingen pågår eller väntar. Vi rekommenderar att du använder alla språkvarianter i följande tabell, men rekommenderar mer testning av förhandsversionsspråk för att säkerställa att resultatet är giltigt för ditt innehåll. Språk med en bockmarkering och ingen förhandsgranskningsbeteckning har verifierats med hjälp av motsvarande datauppsättningar, med mätbar relevans.

Språk queryLanguage Semantisk rankare och undertexter Semantiskt svar Speller
Engelska [en] en, en-US (standard), en-GB, en-IN, en-CA, en-AU ✔️ ✔️ ✔️ (en, en-US)
Franska [fr] fr, fr-FR (standard), fr-CA ✔️ ✔️ ✔️ (fr, fr-FR)
Tyska [de] de, de-DE (standard) ✔️ ✔️ ✔️ (de, de-DE)
Spanska [es] es, es-ES (standard), es-MX ✔️ ✔️ ✔️ (es, es-ES)
Italienska [it] it, it-IT (standard) ✔️ ✔️
Japanska [ja] ja, ja-JP (standard) ✔️ ✔️ (förhandsversion)
Kinesiska [zh] zh, zh-CN (standard), zh-TW ✔️ ✔️ (förhandsversion)
Portugisiska [pt] pt, pt-BR (standard), pt-PT ✔️ ✔️ (förhandsversion)
Nederländska [nl] nl, nl-BE, nl-NL (standard) ✔️ (förhandsversion) ✔️ (förhandsversion) ✔️ (nl, nl-NL)
Arabiska [ar] ar, ar-SA (standard), ar-EG, ar-MA, ar-KW, ar-JO ✔️ (förhandsversion) ✔️ (förhandsversion)
Armeniska hy-AM (standard) ✔️ (förhandsversion) ✔️ (förhandsversion)
Bangla bn-IN (standard) ✔️ (förhandsversion) ✔️ (förhandsversion)
Baskiska eu-ES (standard) ✔️ (förhandsversion) ✔️ (förhandsversion)
Bulgariska [bg] bg, bg-BG (standard) ✔️ (förhandsversion) ✔️ (förhandsversion)
Katalanska [ca] ca, ca-ES (standard) ✔️ (förhandsversion) ✔️ (förhandsversion)
Kroatiska [hr] hr, hr-HR (standard), hr-BA ✔️ (förhandsversion) ✔️ (förhandsversion)
Tjeckiska [cs] cs, cs-CZ (standard) ✔️ (förhandsversion) ✔️ (förhandsversion)
Danska [da] da, da-DK (standard) ✔️ (förhandsversion) ✔️ (förhandsversion)
Estniska [et] et, et-EE (standard) ✔️ (förhandsversion) ✔️ (förhandsversion)
Finska [fi] fi, fi-FI (standard) ✔️ (förhandsversion) ✔️ (förhandsversion)
Galiciska gl-ES (standard) ✔️ (förhandsversion) ✔️ (förhandsversion)
Grekiska [el] el, el-GR (standard) ✔️ (förhandsversion) ✔️ (förhandsversion)
Gujarati gu-IN (standard) ✔️ (förhandsversion) ✔️ (förhandsversion)
Hebreiska he-IL (standard) ✔️ (förhandsversion) ✔️ (förhandsversion)
Hindi [hi] hi, hi-IN (standard) ✔️ (förhandsversion) ✔️ (förhandsversion)
Ungerska [hu] hu, hu-HU (standard) ✔️ (förhandsversion) ✔️ (förhandsversion)
Isländska [is] is, is-IS (standard) ✔️ (förhandsversion) ✔️ (förhandsversion)
Indonesiska [id] id, id-ID (standard) ✔️ (förhandsversion) ✔️ (förhandsversion)
Iriska ga-IE (standard) ✔️ (förhandsversion) ✔️ (förhandsversion)
Kannada kn-IN (standard) ✔️ (förhandsversion) ✔️ (förhandsversion)
Koreanska [ko] ko, ko-KR (standard) ✔️ (förhandsversion) ✔️ (förhandsversion)
Lettiska [lv] lv, lv-LV (standard) ✔️ (förhandsversion) ✔️ (förhandsversion)
Litauiska [lt] lt, lt-LT (standard) ✔️ (förhandsversion) ✔️ (förhandsversion)
Malayalam ml-IN (standard) ✔️ (förhandsversion) ✔️ (förhandsversion)
Malaysisk [ms] ms, ms-MY (standard), ms-BN ✔️ (förhandsversion) ✔️ (förhandsversion)
Marathi mr-IN (standard) ✔️ (förhandsversion) ✔️ (förhandsversion)
Norska [no] no, no-NO (standard), nb-NO ✔️ (förhandsversion) ✔️ (förhandsversion)
Persiska fa-AE (standard) ✔️ (förhandsversion) ✔️ (förhandsversion)
Polska [pl] pl, pl-PL (standard) ✔️ (förhandsversion) ✔️ (förhandsversion)
Punjabi pa-IN (standard) ✔️ (förhandsversion) ✔️ (förhandsversion)
Rumänska [ro] ro, ro-RO (standard) ✔️ (förhandsversion) ✔️ (förhandsversion)
Ryska [ru] ru, ru-RU (standard) ✔️ (förhandsversion) ✔️ (förhandsversion)
Serbiska [sr] (kyrillisk eller latinsk) sr, sr-BA (standard), sr-ME, sr-RS ✔️ (förhandsversion) ✔️ (förhandsversion)
Slovakiska [sk] sk, sk-SK (standard) ✔️ (förhandsversion) ✔️ (förhandsversion)
Slovenska [sl] sl, sl-SL (standard) ✔️ (förhandsversion) ✔️ (förhandsversion)
Tamil [ta] ta, ta-IN (standard) ✔️ (förhandsversion) ✔️ (förhandsversion)
Svenska [sv] sv, sv-SE (standard) ✔️ (förhandsversion) ✔️ (förhandsversion)
Telugu te-IN (standard) ✔️ (förhandsversion) ✔️ (förhandsversion)
Thailändska [th] th, th-TH (standard) ✔️ (förhandsversion) ✔️ (förhandsversion)
Turkiska [tr] tr, tr-TR (standard) ✔️ (förhandsversion) ✔️ (förhandsversion)
Ukrainska [uk] uk, uk-UA (standard) ✔️ (förhandsversion) ✔️ (förhandsversion)
Urdu ur-PK (standard) ✔️ (förhandsversion) ✔️ (förhandsversion)
Vietnamesiska [va] va, vi-VN (standard) ✔️ (förhandsversion) ✔️ (förhandsversion)

Se även