Hledání v dokumentech (Preview REST API)

Platí pro: 2023-07-01-Preview, 2021-04-30-Preview, 2020-06-30-Preview

Důležité

Verze 2023-07-01-Preview přidává:

  • Parametr dotazu "vectors" určující všechny požadavky vektorových dotazů. Každý objekt by měl obsahovat vektorové vyjádření dotazu, "k" počet nejbližších sousedů, které se mají vrátit ve výsledcích, a vektorová pole, která se mají použít při provádění dotazu.

2021-04-30-Preview přidává:

  • SémanticConfiguration podporuje vymezení rozsahu sémantického řazení na konkrétní pole.
  • Výraz "captions" vrátí fráze extrahované z klíčových pasáží v dokumentech s nejvyšším sémanticky seřazeným.

2020-06-30-Preview přidává:

  • "queryType=sémantic" podporuje sémantické řazení a odpovědi.
  • Výraz "searchFields" v sémantickém dotazu určuje pořadí priorit polí používaných k formulaci titulků a odpovědí. Tento přístup byl v 2021-04-30-Preview nahrazený příkazem "sémanticConfiguration" a je teď zastaralý.
  • Příkaz "speller" umožňuje opravu pravopisu při zadávání dotazu.
  • "queryLanguage" se vyžaduje pro "queryType=sémantic" i "speller".
  • Funkce "featuresMode" rozbalí skóre hledání a hlásí četnost termínů podle pole, skóre podobnosti jednotlivých polí a počet jedinečných shod podle pole.

Požadavek dotazu cílí na kolekci dokumentů jednoho indexu ve vyhledávací službě. Obsahuje parametry, které definují kritéria shody, a parametry, které formuje odpověď. Alias indexu můžete použít také k cílení na konkrétní index místo samotného názvu indexu.

Pro většinu dotazů můžete použít get nebo POST, ale pro vektorové vyhledávání musíte použít POST, protože parametry vektorového dotazu se nevejdou do identifikátoru URI. Parametry dotazu se zadají v řetězci dotazu pro požadavky GET a v textu požadavku pro požadavky POST.

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

Pokud používáte POST, přidejte akci hledání jako parametr identifikátoru URI.

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]  

Při volání pomocí get nesmí délka adresy URL požadavku překročit 8 kB. Tato délka je dostatečná pro většinu aplikací. Některé aplikace však vytvářejí velké dotazy, konkrétně při použití výrazů filtru OData. Pro tyto aplikace je http POST lepší volbou, protože umožňuje větší filtry než GET.

U funkce POST je limitačním faktorem počet klauzulí ve filtru, nikoli velikost nezpracovaného řetězce filtru, protože limit velikosti požadavku pro post je přibližně 16 MB. I když je limit velikosti požadavku POST velký, výrazy filtru nemůžou být libovolně složité. Další informace o omezeních složitosti filtru najdete v tématu Syntaxe výrazů OData pro Azure AI Search.

Parametry identifikátoru URI

Parametr Popis
název služby Povinná hodnota. Nastavte tento název na jedinečný, uživatelem definovaný název vaší vyhledávací služby.
název indexu nebo dokumentace Povinná hodnota. Určuje kolekci dokumentů pojmenovaného indexu. Místo názvu indexu je možné použít také název aliasu indexu .
parametry dotazu Parametry dotazu se zadává v identifikátoru URI pro požadavky GET a v textu požadavku pro požadavky POST.
verze-api Povinná hodnota. Aktuální verze je 2023-07-01-Preview. Další verze najdete v tématu Verze rozhraní API .

Doporučení ke kódování adres URL

Při přímém volání rozhraní GET REST API nezapomeňte zakódovat konkrétní parametry dotazu pomocí adresy URL. Pro operaci Hledat dokumenty může být kódování adresy URL nezbytné pro následující parametry dotazu:

  • search
  • $filter
  • omezující vlastnost
  • highlightPreTag
  • highlightPostTag

Kódování adresy URL se doporučuje pouze pro jednotlivé parametry. Pokud neúmyslně zakódujete celý řetězec dotazu pomocí adresy URL (vše za ?), požadavky se přeruší.

Kódování adresy URL je také nutné pouze při přímém volání rozhraní REST API pomocí get. Při použití post nebo klientské knihovny .NET služby Azure AI Search, která zpracovává kódování za vás, není potřeba žádné kódování adresy URL.

Hlavičky požadavku

Následující tabulka popisuje požadovanou a volitelnou hlavičku požadavku.

Pole Description
Typ obsahu Povinná hodnota. Nastavte tuto hodnotu na application/json.
klíč rozhraní API Volitelné, pokud používáte role Azure a v požadavku je k dispozici nosný token, jinak se vyžaduje klíč. Klíč api-key je jedinečný, systémem vygenerovaný řetězec, který ověřuje požadavek na vaši vyhledávací službu. Požadavky dotazů na kolekci dokumentů můžou jako klíč rozhraní API zadat klíč správce nebo klíč dotazu. Klíč dotazu se používá pro operace jen pro čtení s kolekcí dokumentů. Podrobnosti najdete v tématu Připojení ke službě Azure AI Search pomocí ověřování pomocí klíče .

Text požadavku

Pro GET: Žádné.

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

Pokračování částečných odpovědí hledání

Azure AI Search někdy nemůže vrátit všechny požadované výsledky v jedné odpovědi search. K částečné odpovědi může dojít z různých důvodů, například když dotaz vrátí příliš mnoho dokumentů tím, že nezadá $top, nebo když zadá hodnotu $top, která je příliš velká. V takových případech Azure AI Search zahrne poznámku @odata.nextLink do textu odpovědi a také @search.nextPageParameters v případě, že se jednalo o požadavek POST. Hodnoty těchto poznámek můžete použít k formulování dalšího požadavku vyhledávání, abyste získali další část odpovědi hledání. Toto chování se nazývá pokračování původního požadavku hledání a poznámky se nazývají tokeny pokračování. Podrobnosti o syntaxi těchto poznámek a jejich umístění v textu odpovědi najdete v příkladu v části Odpověď.

Důvody, proč azure AI Search může vracet tokeny pro pokračování, jsou specifické pro implementaci a můžou se změnit. Robustní klienti by měli být vždy připravení na zpracování případů, kdy se vrátí méně dokumentů, než se očekávalo, a je součástí tokenu pro pokračování, aby bylo možné pokračovat v načítání dokumentů. Mějte také na paměti, že pokud chcete pokračovat, musíte použít stejnou metodu HTTP jako původní požadavek. Pokud jste například odeslali požadavek GET, všechny požadavky na pokračování, které odešlete, musí také používat get (a podobně i pro POST).

Poznámka

Účelem @odata.nextLink a @search.nextPageParameters je chránit službu před dotazy, které požadují příliš mnoho výsledků, nikoli poskytnout obecný mechanismus pro stránkování. Pokud chcete výsledky procházet stránkami, použijte $top a $skip společně. Pokud například chcete stránky o velikosti 10, první požadavek by měl mít $top=10 a $skip=0, druhý požadavek by měl obsahovat $top=10 a $skip=10, třetí požadavek by měl obsahovat $top=10 a $skip=20 atd.

Parametry dotazu

Dotaz při volání pomocí get přijímá několik parametrů na adrese URL a jako vlastnosti JSON v textu požadavku při volání pomocí POST. Syntaxe některých parametrů se mezi get a POST mírně liší. Tyto rozdíly jsou uvedeny v následující tabulce.

Název Typ Description
answers (Preview) řetězec Nepovinný parametr. Platné hodnoty jsou "none" a "extractive". Výchozí hodnota je "none". Tento parametr je platný pouze v případě, že je typ dotazu "sémantický". Pokud je nastavená hodnota "extractive", dotaz formuluje a vrací odpovědi z klíčových pasáží v dokumentech s nejvyšším sémanticky seřazeným. Výchozí je jedna odpověď, ale přidáním počtu můžete zadat až 10. Například "answers": "extractive|count-3" vrátí tři odpovědi. Aby se odpověď vrátila, musí být v cílovém poli doslovný obsah, který vypadá jako odpověď. Jazykové modely používané pro odpovědi jsou vytrénovány tak, aby rozpoznávaly odpovědi, nikoli aby je vygenerovaly. Kromě toho musí samotný dotaz vypadat jako otázka.
verze-api řetězec Povinná hodnota. Verze rozhraní REST API použitá pro požadavek Seznam podporovaných verzí najdete v tématu Verze rozhraní API. Pro tuto operaci se jako parametr identifikátoru URI zadává api-version bez ohledu na to, jestli voláte dokumenty hledání pomocí příkazu GET nebo POST.
titulky (Preview) řetězec Nepovinný parametr. Platné hodnoty jsou "none" a "extractive". Výchozí hodnota je "none". Tento parametr je platný pouze v případě, že je typ dotazu "sémantický". Pokud je nastavená hodnota "extractive", dotaz vrátí titulky extrahované z klíčových pasáží v dokumentech s nejvyšším pořadím. Pokud jsou titulky nastavené na "extractive", zvýraznění je ve výchozím nastavení povolené a dá se nakonfigurovat přidáním znaku svislé čáry | následovaného možností zvýraznění true</false>, například extractive|highlight-true.
$count boolean Nepovinný parametr. Platné hodnoty jsou true nebo false. Výchozí hodnota je false. Při zavolání pomocí POST má tento parametr název count místo $count. Určuje, jestli se má načíst celkový počet výsledků. Tato hodnota je počet všech dokumentů, které odpovídají parametrům hledání a $filter, a ignoruje $top a $skip. Nastavení této hodnoty na true může snížit výkon. Počet je přesný, pokud je index stabilní, ale bude pod nebo přepočítává všechny dokumenty, které jsou aktivně přidány, aktualizovány nebo odstraněny. Pokud chcete získat pouze počet bez dokumentů, můžete použít $top=0.
fasety nebo fasety řetězec Nepovinný parametr. Pole, podle kterého se má použít faset, kde je pole přiřazeno jako "facetable". Při zavolání pomocí funkce GET facet se jedná o pole (facet: field1). Při zavolání pomocí POST je tento parametr pojmenován facets místo facet a je zadaný jako pole (facets: [field1, field2, field3]). Řetězec může obsahovat parametry pro přizpůsobení fazety vyjádřené jako dvojice název-hodnota oddělené čárkami.

Platné hodnoty jsou "count", "sort", "values", "interval" a "timeoffset".

"count" je maximální počet omezujících výrazů; výchozí hodnota je 10. Neexistuje žádný horní limit počtu termínů, ale vyšší hodnoty sníží výkon, zejména pokud pole s omezujícími vlastnostmi obsahuje velký počet jedinečných termínů. Například "facet=category,count:5" získá prvních pět kategorií ve výsledcích omezující vlastnosti. Pokud je parametr count menší než počet jedinečných termínů, nemusí být výsledky přesné. Důvodem je způsob distribuce dotazů s omezujícími tvářemi napříč horizontálními oddíly. Pokud chcete získat přesný počet napříč všemi horizontálními oddíly, můžete nastavit počet na nulu nebo na hodnotu, která je větší nebo rovna počtu jedinečných hodnot v poli facetable. Kompromisem je zvýšená latence.

"sort" lze nastavit na "count", "-count", "value", "-value". Pomocí funkce Count můžete seřadit sestupně podle počtu. Pokud chcete seřadit vzestupně podle počtu, použijte -count. Použijte hodnotu k seřazení vzestupně podle hodnoty. Pomocí parametru -value seřadíte sestupně podle hodnoty (například "facet=category,count:3;sort:count" získá první tři kategorie ve výsledcích omezující vlastnosti v sestupném pořadí podle počtu dokumentů s názvem každého města). Pokud jsou první tři kategorie Rozpočet, Motel a Luxus a Rozpočet má pět hitů, Motel má šest a Luxury má čtyři, pak jsou kbelíky v pořadí Motel, Budget, Luxury. Pro hodnotu -value vytvoří "facet=rating,sort:-value" kontejnery pro všechna možná hodnocení v sestupném pořadí podle hodnoty (například pokud jsou hodnocení od 1 do 5, jsou kontejnery seřazeny 5, 4, 3, 2, 1 bez ohledu na to, kolik dokumentů odpovídá jednotlivým hodnocením).

"values" lze nastavit na číselné hodnoty oddělené kanály nebo hodnoty Edm.DateTimeOffset určující dynamickou sadu vstupních hodnot omezující vlastnosti (například "facet=baseRate,values:10 | 20" vytvoří tři kbelíky: jeden pro základní sazbu 0 do 10, jeden pro 10 až 20, ale nezahrnuje 20 a jeden pro 20 a vyšší). Řetězec facet=lastRenovationDate,values:2010-02-01T00:00:00Z vytvoří dva kbelíky: jeden pro hotely rekonstruované před únorem 2010 a druhý pro hotely rekonstruované 1. února 2010 nebo novější. Hodnoty musí být uvedeny v sekvenčním vzestupném pořadí, aby se získaly očekávané výsledky.

"interval" je celočíselný interval větší než 0 pro čísla nebo minuta, hodina, den, týden, měsíc, čtvrtletí a rok pro hodnoty data a času. Například "facet=baseRate,interval:100" vytvoří kontejnery založené na rozsahech základní sazby o velikosti 100. Pokud jsou základní sazby všechny mezi 60 a 600 USD, budou existovat kontejnery pro 0-100, 100-200, 200-300, 300-400, 400-500 a 500-600. Řetězec "facet=lastRenovationDate,interval:year" vytvoří jeden kbelík pro každý rok, kdy byly hotely renovovány.

"timeoffset" lze nastavit na ([+-]hh:mm, [+-]hhmm nebo [+-]hh). Pokud je použit parametr timeoffset, musí být kombinován s možností intervalu a pouze při použití u pole typu Edm.DateTimeOffset. Hodnota určuje časový posun UTC, který se má zohlednit při nastavení časových hranic. Příklad: "facet=lastRenovationDate,interval:den,timeoffset:-01:00" používá hranici dne, která začíná v 01:00:00 UTC (půlnoc v cílovém časovém pásmu).

funkce count a sort se dají kombinovat ve stejné specifikaci omezující vlastnosti, ale nedají se kombinovat s intervalem nebo hodnotami a interval a hodnoty se nedají kombinovat dohromady.

Fasety intervalu pro datum a čas se počítají na základě času UTC, pokud není zadaný časový posun. Příklad: pro "facet=lastRenovationDate,interval:den" začíná hranice dne v 00:00:00 UTC.
featuresMode (Preview) boolean Nepovinný parametr. Platné hodnoty jsou "povoleno" a "zakázáno". Výchozí hodnota je zakázaná. Hodnota, která určuje, jestli mají výsledky obsahovat funkce výsledků dotazu, které slouží k výpočtu skóre relevance dokumentu ve vztahu k dotazu, například podle podobnosti polí. Pomocí funkce "povoleno" můžete zveřejnit další funkce výsledků dotazu: skóre podobnosti pole, četnost termínů pole a počet jedinečných tokenů odpovídajících podle pole. Další informace najdete v tématu Podobnost a bodování.
$filter řetězec Nepovinný parametr. Strukturovaný vyhledávací výraz ve standardní syntaxi OData. Ve filtru lze použít pouze filtrovatelná pole. Při zavolání s post má tento parametr název filter místo $filter. Podrobnosti o podmnožině gramatiky výrazu OData, kterou azure AI Search podporuje, najdete v tématu Syntaxe výrazů OData pro Azure AI Search.
Zvýraznit řetězec Nepovinný parametr. Sada názvů polí oddělených čárkami, které se používají pro zvýraznění přístupů. Ke zvýraznění přístupů je možné použít pouze prohledávatelná pole. Služba Azure AI Search ve výchozím nastavení vrací až pět zvýraznění na pole. Limit je možné konfigurovat pro jednotlivá pole tak, že za název pole přidáte "-max# of highlights" (-<max# of highlights>). Například "highlight=title-3,description-10" vrátí až tři zvýrazněné hity z pole s názvem a až 10 přístupů z pole popis. Maximální počet zvýraznění musí být celé číslo mezi 1 a 1 000 včetně.
highlightPostTag řetězec Nepovinný parametr. Výchozí hodnota je "</em>". Značka řetězce, která se připojí ke zvýrazněnému termínu. Musí být nastaven pomocí highlightPreTag. Rezervované znaky v adrese URL musí být zakódované v procentech (například %23 místo #).
highlightPreTag řetězec Nepovinný parametr. Výchozí hodnota je "</em>". Značka řetězce, která se předeznamuje zvýrazněným termínem. Musí být nastaven pomocí highlightPostTag. Rezervované znaky v adrese URL musí být zakódované v procentech (například %23 místo #).
minimumCoverage integer Nepovinný parametr. Platné hodnoty jsou číslo od 0 do 100, což označuje procento indexu, které musí být k dispozici pro obsluhu dotazu, aby bylo možné hlásit úspěch. Výchozí hodnota je 100.

Stoprocentní pokrytí znamená, že všechny horizontální oddíly odpověděly na požadavek (ani problémy se stavem služby ani aktivity údržby nesnížovaly pokrytí). Ve výchozím nastavení vrátí stavový kód HTTP 503 menší než úplné pokrytí.

Snížení minimumCoverage může být užitečné, pokud dochází k chybám 503 a chcete zvýšit pravděpodobnost úspěchu dotazu, zejména u služeb, které jsou nakonfigurované pro jednu repliku. Pokud nastavíte minimumCoverage a hledání proběhne úspěšně, vrátí http 200 a zahrne @search.coverage do odpovědi hodnotu označující procento indexu, který byl zahrnut do dotazu. V tomto scénáři není zaručeno, že se ve výsledcích hledání budou vyskytovat všechny odpovídající dokumenty, ale pokud je dostupnost hledání důležitější než úplnost, pak snížení pokrytí může být životaschopnou strategií pro zmírnění rizik.
$orderby řetězec Nepovinný parametr. Seznam výrazů oddělených čárkami, podle které se mají výsledky seřadit. Při zavolání pomocí POST se tento parametr nazývá orderby místo $orderby. Každý výraz může být buď názvem pole, nebo voláním funkce geo.distance(). Za každým výrazem může následovat "asc" označující vzestupné a "desc" označující sestupně. Pokud jsou v poli řazení hodnoty null, zobrazí se hodnoty null jako první vzestupně a poslední v sestupném pořadí. Výchozí hodnota je vzestupné pořadí. Vazby budou přerušeny skóre shody dokumentů. Pokud není zadána žádná $orderby, výchozí pořadí řazení je sestupné podle skóre shody dokumentu. Pro $orderby platí limit 32 klauzulí.
queryLanguage (Preview) řetězec Nepovinný parametr. Platné hodnoty jsou podporovaným jazykem. Výchozí hodnota je "en-us". Tento parametr musí být nastaven, pokud používáte speller=lexicon nebo queryType=sémantic. Jazyk zadaný v queryLanguage se používá pro kontrolu pravopisu i pro sémantické modely, které přeusílají výsledky a extrahují popis nebo odpověď. Knihovny používané pro queryLanguage jsou nezávislé na dalších atributech polí založených na národním prostředí, jako jsou analyzátory jazyka používané pro indexování a fulltextové vyhledávání.
queryType řetězec Nepovinný parametr. Platné hodnoty jsou "simple", "full" nebo "sémantické" (Preview). Výchozí hodnota je "simple". Tato hodnota je ignorována pro vektorové vyhledávání, ale platí pro vyhledávání v textu v hybridních scénářích.

"simple" interpretuje řetězce dotazů pomocí jednoduché syntaxe dotazu , která umožňuje symboly, jako +jsou , *a "". Dotazy se ve výchozím nastavení vyhodnocují ve všech prohledávatelných polích (nebo polích označených v vyhledávacích polích) v každém dokumentu.

"full" interpretuje řetězce dotazů pomocí úplné syntaxe dotazu Lucene , která umožňuje vyhledávání podle polí a vážené vyhledávání. Vyhledávání v rozsahu v dotazovacím jazyce Lucene není podporováno ve prospěch $filter, která nabízí podobné funkce.

" sémantika" zlepšuje přesnost výsledků hledání tím, že přeřadí prvních 50 shod pomocí modelu řazení vytrénovaného v korpusu Bingu pro dotazy vyjádřené v přirozeném jazyce místo klíčových slov. Pokud nastavíte typ dotazu na sémantiku, musíte také nastavit queryLanguage a sémanticConfiguration. Volitelně můžete nastavit odpovědi, pokud chcete vrátit také první 3 odpovědi, pokud byl vstup dotazu formulován v přirozeném jazyce ("co je...) a volitelně můžete nastavit titulky pro extrahování klíčových pasáží z nejvýše seřazených dokumentů.
bodováníParameter řetězec Nepovinný parametr. Určuje hodnoty pro každý parametr definovaný v bodovací funkci (například referencePointParameter) ve formátu name-value1,value2,.... Při zavolání pomocí POST má tento parametr název scoringParameters místo scoringParameter. Zadáte ho také jako pole JSON řetězců, kde každý řetězec je samostatnou dvojicí název-hodnota.

U profilů bodování, které obsahují funkci, oddělte funkci od jejího vstupního seznamu znakem - . Například funkce s názvem "mylocation" "&scoringParameter=mylocation--122.2;44.8". První pomlčka odděluje název funkce od seznamu hodnot, zatímco druhá pomlčka je součástí první hodnoty (v tomto příkladu zeměpisná délka).

U hodnoticích parametrů, jako je například zvýšení značek, které mohou obsahovat čárky, můžete všechny takové hodnoty v seznamu uvozovat pomocí jednoduchých uvozovek. Pokud samotné hodnoty obsahují jednoduché uvozovky, můžete je uvozovat zdvojnásobováním. Předpokládejme, že máte parametr zvýšení hodnoty značky s názvem "mytag" a chcete zvýšit hodnoty značek "Hello, O'Brien" a "Smith", možnost řetězce dotazu by pak byla "&scoringParameter=mytag-'Hello, O'Brien',Smith". Uvozovky jsou povinné pouze pro hodnoty, které obsahují čárky.
scoringProfile řetězec Nepovinný parametr. Název profilu bodování, který má vyhodnotit skóre shody pro odpovídající dokumenty, aby bylo možné výsledky seřadit.
scoringStatistics řetězec Nepovinný parametr. Platné hodnoty jsou "local" nebo "global". Výchozí hodnota je "local". Určete, jestli se mají vypočítat statistiky bodování, jako je četnost dokumentů, globálně (napříč všemi horizontálními oddíly) pro zajištění konzistentnějšího vyhodnocování, nebo místně (v aktuálním horizontálním oddílu) pro snížení latence. Viz Statistika bodování ve službě Azure AI Search. Statistika bodování se vždy vypočítá místně pro termíny, které používají přibližné vyhledávání (~).
search řetězec Nepovinný parametr. Text, který chcete vyhledat. Tato hodnota je ignorována pro vektorové vyhledávání, ale platí pro vyhledávání v textu v hybridních scénářích. V rozhraníCH REST API se ve výchozím nastavení prohledávají všechna prohledávatelná pole, pokud není zadána pole searchFields. V indexu je text v prohledávatelných polích tokenizován, takže více termínů může být odděleno prázdnými znaky (například: 'search=hello world'). Pokud chcete shodovat s libovolným termínem, použijte * (to může být užitečné pro dotazy logických filtrů). Vynechání tohoto parametru má stejný účinek jako jeho nastavení na *hodnotu . Podrobnosti o syntaxi vyhledávání najdete v části Jednoduchá syntaxe dotazu .

Výsledky můžou být při dotazování na prohledávatelná pole někdy překvapivé. Tokenizátor obsahuje logiku pro zpracování případů běžných pro anglický text, jako jsou apostrofy, čárky v číslech atd. Například "search=123,456" bude odpovídat jednomu výrazu "123 456" místo jednotlivých termínů "123" a "456", protože čárky se používají jako oddělovače tisíců pro velká čísla v angličtině. Z tohoto důvodu doporučujeme místo interpunkce použít prázdné znaky k oddělení termínů ve vyhledávacím parametru.
searchMode řetězec Nepovinný parametr. Platné hodnoty jsou "any" nebo "all" Výchozí hodnoty jsou "any". Určuje, zda musí být některé nebo všechny hledané termíny shodné, aby bylo možné dokument spočítat jako shodu.
searchFields řetězec Nepovinný parametr. Seznam názvů polí oddělených čárkami pro vyhledání zadaného textu. Cílová pole musí být ve schématu indexu označená jako prohledávatelná a musí být typu Edm.String, Edm.ComplexTypenebo Collection(Edm.String).
$select řetězec Nepovinný parametr. Seznam polí oddělených čárkami, která se mají zahrnout do sady výsledků dotazu. Tato klauzule může obsahovat pouze pole označená jako zobrazitelná. Pokud není zadáno nebo je nastaveno na *hodnotu , všechna pole označená jako zobrazitelná ve schématu se zahrnou do projekce. Při zavolání pomocí příkazu POST má tento parametr název select místo $select.
sémanticConfiguration (Preview) řetězec Nepovinný parametr. Vyžaduje se, pokud queryType="sémantic". Název sémantické konfigurace obsahující seznam polí, která se mají použít pro sémantické řazení, titulky, zvýraznění a odpovědi. Další informace najdete v tématu Vytvoření sémantického dotazu.
Sessionid řetězec Nepovinný parametr. Použití sessionId pomáhá zlepšit konzistenci skóre relevance pro vyhledávací služby s více replikami. V konfiguracích s více replikami můžou existovat drobné rozdíly mezi skóre relevance jednotlivých dokumentů pro stejný dotaz. Když je zadáno ID relace, služba se snaží směrovat daný požadavek na stejnou repliku pro danou relaci. Dávejte pozor, aby opakované opakované použití stejných hodnot ID relace mohlo narušit vyrovnávání zatížení požadavků mezi replikami a nepříznivě ovlivnit výkon vyhledávací služby. Hodnota použitá jako sessionId nemůže začínat znakem _. Pokud služba nemá žádné repliky, nemá tento parametr žádný vliv na konzistenci výkonu ani skóre.
$skip integer Nepovinný parametr. Počet výsledků hledání, které se mají přeskočit. Při zavolání s POST má tento parametr název skip místo $skip. Tato hodnota nesmí být větší než 100 000. Pokud potřebujete skenovat dokumenty v pořadí, ale nemůžete použít $skip z důvodu tohoto omezení, zvažte použití $orderby u pole, které má jedinečné hodnoty pro každý dokument v indexu (například klíč dokumentu) a $filter místo toho s dotazem na rozsah.
kontrola pravopisu (Preview) Řetězec Nepovinný parametr. Platné hodnoty jsou "none" a "lexicon". Výchozí hodnota je "none". Vylepšení úplnosti opravou pravopisu jednotlivých výrazů hledaných dotazů Můžete ho použít u jednoduchých, úplných a sémantických typů dotazů. Pokud se používá, vyžaduje parametr kontroly pravopisu queryLanguage. Další informace a příklady najdete v tématu Přidání kontroly pravopisu do dotazů.
$top integer Nepovinný parametr. Počet výsledků hledání, které se mají načíst. Výchozí hodnota je 50. Při zavolání s POST má tento parametr název top místo $top. Pokud zadáte hodnotu větší než 1000 a zobrazí se více než 1 000 výsledků, vrátí se pouze prvních 1000 výsledků spolu s odkazem na další stránku výsledků (viz "@odata.nextLink" v následujícím příkladu).

Azure AI Search používá stránkování na straně serveru k tomu, aby dotazy nemohly načíst příliš mnoho dokumentů najednou. Výchozí velikost stránky je 50, maximální velikost stránky je 1000. To znamená, že pokud nezadáte $top, vrátí hledání v dokumentech ve výchozím nastavení maximálně 50 výsledků. Pokud je výsledků více než 50, odpověď obsahuje informace o načtení maximálně 50 výsledků na další stránce (viz "@odata.nextLink" a "@search.nextPageParameters" v následujících příkladech . Podobně pokud pro $top zadáte hodnotu větší než 1000 a zobrazí se více než 1 000 výsledků, vrátí se pouze prvních 1000 výsledků spolu s informacemi o načtení další stránky s maximálně 1 000 výsledky.
vectors (Preview) array Nepovinný parametr. Typ objektu v rámci pole je vektorový dotaz. Parametry dotazu pro vektorové dotazy.

"value" je vektorové znázornění vyhledávacího dotazu. Tato reprezentace musí být vytvořena externě. Azure AI Search nevytváří vkládání.

"k" je celé číslo určující počet nejbližších sousedů, které se mají vrátit jako první nalezené položky. Výchozí hodnota je 50. Minimum je 1 a maximum je 10 000.

"fields" je seznam názvů polí oddělených čárkami, které obsahují vektorová data. Do seznamu "pole" mohou být zahrnuta pouze pole typu Collection(Edm.Single) .

Odpověď

Stavový kód: Pro úspěšnou odpověď se vrátí 200 OK. Tento článek obsahuje dvě ukázkové odpovědi, po jedné pro sémantické vyhledávání a funkceMode.

Ukázková odpověď pro sémantický dotaz

První příklad ukazuje úplnou odpověď nejvyššího výsledku sémantického dotazu "how do clouds form" (jak se tvoří cloudy).

  • "@search.answers" se zobrazí, když zadáte parametr answers a když dotaz a cílová pole v indexu obsahují obsah, který lze rozpoznat jako odpověď. Pole @search.answers , které obsahuje klíč, text a zvýraznění. Skóre je indikátorem síly odpovědi.

  • "value" je tělo odpovědi. Je @search.rerankerScore přiřazený sémantickým algoritmem řazení a používá se k řazení výsledků (@search.score pochází z algoritmu podobnosti BM25, který se používá při vyhodnocování počátečních výsledků). Titulky obsahují prostý text a zvýrazněné verze. Tento příklad byl vytvořen pomocí OCR a dovedností rozpoznávání entit. Do odpovědi se zahrnou pole extrahovaného a sloučeného obsahu.

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

Ukázková odpověď pro featuresMode

Tento příklad ukazuje výstup @search.features z dotazu, který obsahuje 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)
  }

Příklady

Další příklady najdete v tématu Syntaxe výrazů OData pro Azure AI Search.

Příklad: jednoduché vyhledávání

Vyhledejte dokumenty v indexu pomocí jednoduché syntaxe dotazu. Tento dotaz vrátí hotely, kde prohledávatelná pole obsahují termíny "komfort" a "poloha", ale ne "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

Použití přepíše searchMode=all výchozí hodnotu searchMode=any, čímž zajistíte, že -motel místo "NEBO NE" znamená "A NE". Bez searchMode=allpříkazu získáte možnost NEBO NE, která rozšiřuje výsledky hledání, nikoli omezuje, což může být pro některé uživatele neintuitivní.

Příklad: úplné vyhledávání v Lucene

Vyhledejte dokumenty v indexu pomocí syntaxe dotazů Lucene (viz syntaxe dotazů Lucene ve službě Azure AI Search). Tento dotaz vrátí hotely, kde pole kategorie obsahuje termín "rozpočet" a všechna prohledávatelná pole obsahující frázi "nedávno renovovaný". Dokumenty obsahující frázi "nedávno zrekonstruované" jsou seřazeny výše v důsledku výrazu boost value (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"  
}  

Příklad: sémantické vyhledávání

Vyvolání sémantického modelu řazení s odpověďmi, titulky a zvýrazněným obsahem Odpověď na tento dotaz najdete v předchozí části.

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

Příklad: vektorové vyhledávání

Pro index, který obsahuje pole typu Collection(Edm.Single) a vektorové konfigurace, můžete zadat parametry vektorového dotazu. Parametry vektorového dotazu zahrnují vektorová pole, která jsou v oboru dotazu, počet "k" nejlepších přístupů, které se mají vrátit, a vektorovou reprezentaci vstupu dotazu.

Přidání parametru select je užitečné, pokud index obsahuje textová pole. Porovnávání a relevance jsou založeny na vektorech, ale pole obsahující obsah čitelný pro člověka jsou užitečnější pro někoho, kdo čte výsledky. Alternativně můžete napsat kód, který převede vektorová data ve výsledcích hledání na 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"
}

Příklad: orderby

Prohledá index a vrátí výsledky seřazené podle data v sestupném pořadí.

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

Příklad: filtrování pomocí výrazu OData

Načíst dokumenty odpovídající určitému výrazu filtru:

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

Příklad: fasetové vyhledávání

Při fasetovém hledání vyhledejte index a načtěte omezující vlastnosti kategorií, hodnocení, značek a také položek s baseRate v konkrétních rozsazích.

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

Všimněte si, že poslední omezující vlastnost je na dílčím poli. Omezující vlastnosti počítají nadřazený dokument (Hotels) a ne zprostředkující vnořené dokumenty (Místnosti), takže odpověď určí počet hotelů, které mají v každém cenovém intervalu místnosti.

Příklad: Zúžení fasetového dotazu

Pomocí filtru zúžíte výsledek předchozího fasetového dotazu poté, co uživatel vybere Hodnocení 3 a kategorii 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'"  
    }  

Příklad: Fasetové vyhledávání s limity pro každou kategorii

Při fasetovém hledání nastavte horní limit jedinečných termínů vrácených v dotazu. Výchozí hodnota je 10, ale tuto hodnotu můžete zvýšit nebo snížit pomocí parametru count v atributu facet. Tento příklad vrátí omezující vlastnosti pro město, které jsou omezené na 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" ]  
    }  

Příklad: vyhledávání v terénu

Prohledání indexu v konkrétních polích (například v poli jazyka)

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

Prohledávat index ve více polích. Můžete například ukládat a dotazovat prohledávatelná pole ve více jazycích, a to vše v rámci stejného indexu. Pokud ve stejném dokumentu současně existují anglické a francouzské popisy, můžete ve výsledcích dotazu vrátit libovolný nebo všechny popisy:

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

Najednou můžete dotazovat pouze jeden index. Nevytvovávejte více indexů pro každý jazyk, pokud neplánujete dotazovat jeden po druhém.

Příklad: stránkování výsledků

Získání první stránky položek (velikost stránky je 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  
    }  

Získání druhé stránky položek (velikost stránky je 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  
    }  

Příklad: omezení polí v sadě výsledků dotazu

Načtení konkrétní sady polí:

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

Příklad: zvýrazňování stisků ve výsledcích

Prohledejte index a vraťte fragmenty se zvýrazněnými výsledky:

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

Příklad: Geoprostorové vyhledávání

Prohledejte index a vraťte dokumenty seřazené od bližšího po vzdálenější od referenčního umístění:

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

Příklad: "najít podle mě" (zvýšení relevance blízkých umístění

Prohledejte index za předpokladu, že existuje profil bodování s názvem "geo" se dvěma funkcemi pro bodování vzdálenosti. Jedna definuje parametr currentLocation a druhá definuje parametr lastLocation. V následujícím příkladu má "currentLocation" oddělovač jedné pomlčky (-). Následují souřadnice zeměpisné délky a šířky, kde zeměpisná délka je záporná hodnota.

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

Příklad: Dotazování přes celý index místo horizontálních oddílů

Vyhledejte v indexu dokumenty a upřednostňujte konzistentní bodování před nižší latencí. Tento dotaz vypočítá četnost dokumentů v celém indexu a maximálně se snaží cílit na stejnou repliku pro všechny dotazy v rámci stejné relace, což pomáhá generovat stabilní a reprodukovatelné hodnocení.

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

Příklad: statistika bodování (featuresMode)

Vyhledá dokumenty v indexu a vrátí seznam funkcí načítání informací pro každý výsledek popisující bodování mezi odpovídajícím dokumentem a dotazem. Dotaz také vypočítá četnost dokumentů v celém indexu, aby se dosáhlo konzistentnějšího vyhodnocování.

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

Příklad odpovědi, která obsahuje search.features , vypadá podobně jako následující:

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

Definice

Tato část obsahuje podrobnosti o parametrech, které jsou příliš složité na to, aby se pokryly v hlavní tabulce.

Odkaz Description
queryLanguage Seznam jazyků podporovaných pro kontrolu pravopisu a sémantické vyhledávání

queryLanguage

Platné hodnoty parametru queryLanguage jsou uvedeny v následující tabulce ve sloupci "queryLanguage" a nerozlišují malá a velká písmena. Výchozí hodnota pro parametr jako celek je "en-us". V každém jazyce je výchozí varianta pro každý dvouznakový kód jazyka. Pokud například zadáte "es", použije se ve výchozím nastavení "es-us". Parametr queryLanguage se vyžaduje pro požadavek dotazu, který obsahuje "queryType=sémantic" nebo "speller=lexicon". Pro celý požadavek existuje pouze jedna hodnota queryLanguage, která se použije pro sémantické řazení, titulky, odpovědi a pravopis (pro jednotlivé funkce neexistuje žádné přepsání).

V tuto chvíli se podpora jazyků liší podle funkce. Pro celou sadu funkcí je podporována pouze angličtina, španělština, francouzština a němčina, ale všimněte si, že kontrola pravopisu implementuje méně variant.

Pokud zadáte kód jazyka, který daná funkce nepodporuje, například EN-GB s pravopisem, vrátí služba http 400.

Další informace o používání jednotlivých funkcí najdete v tématech Povolení sémantického řazení a titulků, Vrácení sémantické odpovědi a Přidání kontroly pravopisu do dotazů.

Označení "(Preview)" označuje, že ověřovací testování napříč všemi funkcemi (sémantické řazení, titulky, odpovědi a kontrola pravopisu) probíhá nebo čeká na vyřízení. Doporučujeme používat všechny jazykové varianty uvedené v následující tabulce, ale doporučujeme více testovat jazyky ve verzi Preview, abyste měli jistotu, že výsledky budou pro váš obsah platné. Jazyky se značkou zaškrtnutí bez označení preview byly ověřeny pomocí ekvivalentních sad dat s měřitelným zvýšením relevance.

Jazyk queryLanguage Sémantický ranker a titulky Sémantická odpověď Pravopisu
Angličtina [en] en, en-US (výchozí), en-GB, , en-IN, en-CA, en-AU ✔️ ✔️ ✔️ ()en, en-US
Francouzština [fr] fr, fr-FR (výchozí), fr-CA ✔️ ✔️ ✔️ ()fr, fr-FR
Němčina [de] de, de-DE (výchozí) ✔️ ✔️ ✔️ ()de, de-DE
Španělština [es] es, es-ES (výchozí), es-MX ✔️ ✔️ ✔️ ()es, es-ES
Italština [it] it, it-IT (výchozí) ✔️ ✔️
Japonština [ja] ja, ja-JP (výchozí) ✔️ ✔️ (Preview)
Čínština [zh] zh, zh-CN (výchozí), zh-TW ✔️ ✔️ (Preview)
Portugalština [pt] pt, pt-BR (výchozí), pt-PT ✔️ ✔️ (Preview)
Holandština [nl] nl, nl-BE, nl-NL (výchozí) ✔️ (Preview) ✔️ (Preview) ✔️ ()nl, nl-NL
Arabština [ar] ar, ar-SA (výchozí), ar-EG, ar-MA, ar-KW, ar-JO ✔️ (Preview) ✔️ (Preview)
Arménština hy-AM (výchozí) ✔️ (Preview) ✔️ (Preview)
Bangla bn-IN (výchozí) ✔️ (Preview) ✔️ (Preview)
Baskičtina eu-ES (výchozí) ✔️ (Preview) ✔️ (Preview)
Bulharština [bg] bg, bg-BG (výchozí) ✔️ (Preview) ✔️ (Preview)
Katalánština [ca] ca, ca-ES (výchozí) ✔️ (Preview) ✔️ (Preview)
Chorvatština [hr] hr, hr-HR (výchozí), hr-BA ✔️ (Preview) ✔️ (Preview)
Čeština [cs] cs, cs-CZ (výchozí) ✔️ (Preview) ✔️ (Preview)
Dánština [da] da, da-DK (výchozí) ✔️ (Preview) ✔️ (Preview)
Estonština [et] et, et-EE (výchozí) ✔️ (Preview) ✔️ (Preview)
Finština [fi] fi, fi-FI (výchozí) ✔️ (Preview) ✔️ (Preview)
Galicijština gl-ES (výchozí) ✔️ (Preview) ✔️ (Preview)
Řečtina [el] el, el-GR (výchozí) ✔️ (Preview) ✔️ (Preview)
Gudžarátština gu-IN (výchozí) ✔️ (Preview) ✔️ (Preview)
Hebrejština he-IL (výchozí) ✔️ (Preview) ✔️ (Preview)
Hindština [hi] hi, hi-IN (výchozí) ✔️ (Preview) ✔️ (Preview)
Maďarština [hu] hu, hu-HU (výchozí) ✔️ (Preview) ✔️ (Preview)
Islandština [is] is, is-IS (výchozí) ✔️ (Preview) ✔️ (Preview)
Indonéština [id] id, id-ID (výchozí) ✔️ (Preview) ✔️ (Preview)
Irština ga-IE (výchozí) ✔️ (Preview) ✔️ (Preview)
Kannadština kn-IN (výchozí) ✔️ (Preview) ✔️ (Preview)
Korejština [ko] ko, ko-KR (výchozí) ✔️ (Preview) ✔️ (Preview)
Lotyština [lv] lv, lv-LV (výchozí) ✔️ (Preview) ✔️ (Preview)
Litevština [lt] lt, lt-LT (výchozí) ✔️ (Preview) ✔️ (Preview)
Malajalámština ml-IN (výchozí) ✔️ (Preview) ✔️ (Preview)
Malajsijština [ms] ms, ms-MY (výchozí), ms-BN ✔️ (Preview) ✔️ (Preview)
Maráthština mr-IN (výchozí) ✔️ (Preview) ✔️ (Preview)
Norština [no] no, no-NO (výchozí), nb-NE ✔️ (Preview) ✔️ (Preview)
Perština fa-AE (výchozí) ✔️ (Preview) ✔️ (Preview)
Polština [pl] pl, pl-PL (výchozí) ✔️ (Preview) ✔️ (Preview)
Paňdžábština pa-IN (výchozí) ✔️ (Preview) ✔️ (Preview)
Rumunština [ro] ro, ro-RO (výchozí) ✔️ (Preview) ✔️ (Preview)
Ruština [ru] ru, ru-RU (výchozí) ✔️ (Preview) ✔️ (Preview)
Srbština [sr] (cyrilice nebo latinka) sr, sr-BA (výchozí), sr-ME, sr-RS ✔️ (Preview) ✔️ (Preview)
Slovenština [sk] sk, sk-SK (výchozí) ✔️ (Preview) ✔️ (Preview)
Slovinština [sl] sl, sl-SL (výchozí) ✔️ (Preview) ✔️ (Preview)
Tamilština [ta] ta, ta-IN (výchozí) ✔️ (Preview) ✔️ (Preview)
Švédština [sv] sv, sv-SE (výchozí) ✔️ (Preview) ✔️ (Preview)
Telugština te-IN (výchozí) ✔️ (Preview) ✔️ (Preview)
Thajština [th] th, th-TH (výchozí) ✔️ (Preview) ✔️ (Preview)
Turečtina [tr] tr, tr-TR (výchozí) ✔️ (Preview) ✔️ (Preview)
Ukrajinština [uk] uk, uk-UA (výchozí) ✔️ (Preview) ✔️ (Preview)
Urdština ur-PK (výchozí) ✔️ (Preview) ✔️ (Preview)
Vietnamština [va] va, vi-VN (výchozí) ✔️ (Preview) ✔️ (Preview)

Viz také