Condividi tramite


Cerca documenti (API REST di anteprima)

si applica a: 2023-07-01-Preview. Questa versione non è più supportata. Aggiornare immediatamente a una versione più recente.

Importante

2023-07-01-Preview aggiunge:

  • "vettori" parametro di query che specifica qualsiasi richiesta di query vettoriale. Ogni oggetto deve contenere la rappresentazione vettoriale della query, il numero "k" di vicini più vicini da restituire nei risultati e i campi vettoriali da usare durante l'esecuzione della query.

2021-04-30-Preview aggiunge:

  • "semanticConfiguration" supporta la definizione dell'ambito della classificazione semantica in campi specifici.
  • "didascalie" restituisce frasi estratte dai passaggi chiave nei documenti con classificazione semantica più alta.

2020-06-30-Preview aggiunge:

  • "queryType=semantic" supporta il reranking semantico e le risposte.
  • "searchFields" in una query semantica stabilisce l'ordine di priorità dei campi usati per formulare didascalie e risposte. Questo approccio è stato sostituito da "semanticConfiguration" nel 2021-04-30-Preview ed è ora obsoleto.
  • "correttore ortografico" abilita la correzione ortografia nell'input della query.
  • "queryLanguage" è necessario per "queryType=semantic" e "speller".
  • "featuresMode" decomprime un punteggio di ricerca, segnala la frequenza dei termini per campo, il punteggio di somiglianza per campo e il numero di corrispondenze univoche per campo.

Una richiesta di query è destinata alla raccolta di documenti di un singolo indice in un servizio di ricerca. Include parametri che definiscono i criteri di corrispondenza e i parametri che modellano la risposta. È anche possibile usare un alias di indice per specificare come destinazione un particolare indice anziché usare il nome dell'indice stesso.

È possibile usare GET o POST per la maggior parte delle query, ma è necessario usare POST per la ricerca vettoriale perché i parametri di query vettoriali non rientrano in un URI. i parametri di query vengono specificati nella stringa di query per le richieste GET e nel corpo della richiesta per le richieste POST.

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

Se si usa POST, aggiungere l'azione "search" come parametro 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]  

Quando viene chiamato con GET, la lunghezza dell'URL della richiesta non può superare 8 KB. Questa lunghezza è sufficiente per la maggior parte delle applicazioni. Tuttavia, alcune applicazioni producono query di grandi dimensioni, in particolare quando vengono usate espressioni di filtro OData. Per queste applicazioni, HTTP POST è una scelta migliore perché consente filtri di dimensioni maggiori rispetto a GET.

Con POST, il numero di clausole in un filtro è il fattore di limitazione, non le dimensioni della stringa di filtro non elaborata perché il limite di dimensioni della richiesta per POST è di circa 16 MB. Anche se il limite di dimensioni delle richieste POST è elevato, le espressioni di filtro non possono essere arbitrariamente complesse. Per altre informazioni sulle limitazioni di complessità dei filtri, vedere Sintassi delle espressioni OData per Ricerca di intelligenza artificiale di Azure.

Parametri URI

Parametro Descrizione
nome del servizio Obbligatorio. Impostare questo nome sul nome univoco definito dall'utente del servizio di ricerca.
index name/docs Obbligatorio. Specifica l'insieme documents di un indice denominato. Il nome di un alias di indice può essere usato anche al posto del nome dell'indice.
parametri di query I parametri di query vengono specificati nell'URI per le richieste GET e nel corpo della richiesta per le richieste POST.
api-version Obbligatorio. Per altre versioni, vedere versioni dell'API.

Raccomandazioni per la codifica URL

Ricordarsi di codifica URL parametri di query specifici quando si chiama direttamente l'API REST GET. Per un'operazione di ricerca di documenti , potrebbe essere necessaria la codifica URL per i parametri di query seguenti:

  • ricerca
  • $filter
  • sfaccettatura
  • highlightPreTag
  • highlightPostTag

La codifica URL è consigliata solo per i singoli parametri. Se si codifica inavvertitamente l'intera stringa di query (tutto dopo il ?), le richieste verranno interrotte.

Inoltre, la codifica URL è necessaria solo quando si chiama l'API REST direttamente usando GET. Non è necessaria alcuna codifica URL quando si usa POST o quando si usa la libreria client .NET di Ricerca di intelligenza artificiale di Azure, che gestisce automaticamente la codifica.

Intestazioni della richiesta

Nella tabella seguente vengono descritte le intestazioni di richiesta obbligatorie e facoltative.

Campi Descrizione
Tipo di contenuto Obbligatorio. Impostare questo valore su "application/json"
api-key Facoltativo se si usano ruoli di Azure e viene fornito un token di connessione nella richiesta; in caso contrario, è necessaria una chiave. Una chiave API è una stringa univoca generata dal sistema che autentica la richiesta al servizio di ricerca. Le richieste di query sulla raccolta documenti possono specificare una chiave amministratore o una chiave di query come chiave API. La chiave di query viene usata per le operazioni di sola lettura sulla raccolta di documenti. Per informazioni dettagliate, vedere Connettersi a Ricerca di intelligenza artificiale di Azure usando l'autenticazione della chiave.

Corpo della richiesta

Per GET: Nessuno.

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

continuazione delle risposte di ricerca parziale

A volte Ricerca di intelligenza artificiale di Azure non può restituire tutti i risultati richiesti in una singola risposta di ricerca. Una risposta parziale può verificarsi per motivi diversi, ad esempio quando la query restituisce troppi documenti non specificando $top o specificando un valore per $ top troppo grande. In questi casi, Ricerca di intelligenza artificiale di Azure include l'annotazione @odata.nextLink nel corpo della risposta e @search.nextPageParameters anche se si tratta di una richiesta POST. È possibile usare i valori di queste annotazioni per formulare un'altra richiesta di ricerca per ottenere la parte successiva della risposta di ricerca. Questo comportamento viene chiamato continuazione della richiesta di ricerca originale e le annotazioni vengono chiamate token di continuazione . Per informazioni dettagliate sulla sintassi di queste annotazioni e sulla posizione in cui vengono visualizzati nel corpo della risposta, vedere l'esempio nella sezione Response .See the example in the Response section for details on the syntax of these annotations and where they appear in the response body.

I motivi per cui Ricerca intelligenza artificiale di Azure potrebbe restituire token di continuazione specifici dell'implementazione e soggetti a modifiche. I client affidabili devono essere sempre pronti per gestire i casi in cui vengono restituiti meno documenti del previsto e un token di continuazione è incluso per continuare a recuperare i documenti. Si noti anche che è necessario usare lo stesso metodo HTTP della richiesta originale per continuare. Ad esempio, se è stata inviata una richiesta GET, tutte le richieste di continuazione inviate devono usare anche GET (e analogamente per POST).

Nota

Lo scopo di @odata.nextLink e @search.nextPageParameters è proteggere il servizio da query che richiedono troppi risultati, non per fornire un meccanismo generale per il paging. Se si desidera scorrere i risultati, usare $top e $skip insieme. Ad esempio, se si vogliono pagine di dimensioni 10, la prima richiesta deve avere $top=10 e $skip=0, la seconda richiesta deve avere $top=10 e $skip=10, la terza richiesta deve avere $top=10 e $skip=20 e così via.

Parametri di query

Una query accetta diversi parametri nell'URL quando viene chiamato con GET e come proprietà JSON nel corpo della richiesta quando viene chiamato con POST. La sintassi per alcuni parametri è leggermente diversa tra GET e POST. Queste differenze sono indicate nella tabella seguente.

Nome Digitare Descrizione
risposte (anteprima) corda Opzionale. I valori validi sono "none" e "extractive". L'impostazione predefinita è "none". Questo parametro è valido solo se il tipo di query è "semantico". Se impostato su "estratto", la query formula e restituisce risposte dai passaggi chiave nei documenti con classificazione semantica più alta. Il valore predefinito è una risposta, ma è possibile specificare fino a 10 aggiungendo un conteggio. Ad esempio, "answers": "extractive|count-3" restituisce tre risposte. Affinché venga restituita una risposta, è necessario che nel campo di destinazione sia presente contenuto verbatim simile a una risposta. I modelli linguistici usati per le risposte vengono sottoposti a training per riconoscere le risposte, non per generarle. Inoltre, la query stessa deve essere simile a una domanda.
api-version corda Obbligatorio. Versione dell'API REST usata per la richiesta. Per un elenco delle versioni supportate, vedere versioni dell'API. Per questa operazione, la versione api viene specificata come parametro URI indipendentemente dal fatto che si chiami documenti di ricerca con GET o POST.
sottotitoli (anteprima) corda Opzionale. I valori validi sono "none" e "extractive". L'impostazione predefinita è "none". Questo parametro è valido solo se il tipo di query è "semantico". Se impostata su "estratto", la query restituisce le didascalie estratte dai passaggi chiave nei documenti classificati più alti. Quando le didascalie sono impostate su 'extractive', l'evidenziazione è abilitata per impostazione predefinita e può essere configurata aggiungendo il carattere pipe '|' seguito dall'opzione 'highlight-<true/false>', ad esempio 'extractive|highlight-true'.
$count booleano Opzionale. I valori validi sono "true" o "false". L'impostazione predefinita è "false". Quando viene chiamato con POST, questo parametro viene denominato count anziché $count. Specifica se recuperare il conteggio totale dei risultati. Questo valore è il conteggio di tutti i documenti che corrispondono ai parametri di ricerca e $filter, ignorando $top e $skip. L'impostazione di questo valore su "true" potrebbe compromettere le prestazioni. Il conteggio è accurato se l'indice è stabile, ma subirà o sovrasterrà i documenti aggiunti, aggiornati o eliminati attivamente. Se vuoi ottenere solo il conteggio senza documenti, puoi usare $top=0.
facet o facet corda Opzionale. Campo in base al facet, in cui il campo viene attribuito come "facetable". Quando viene chiamato con GET, facet è un campo (facet: field1). Quando viene chiamato con POST, questo parametro viene denominato facets anziché facet e viene specificato come matrice (facets: [field1, field2, field3]). La stringa può contenere parametri per personalizzare il facet, espresso come coppie nome-valore delimitate da virgole.

i valori validi sono "count", "sort", "values", "interval" e "timeoffset".

"count" è il numero massimo di termini facet; il valore predefinito è 10. Non esiste alcun limite massimo per il numero di termini, ma i valori più elevati riducono le prestazioni, soprattutto se il campo in base a facet contiene un numero elevato di termini univoci. Ad esempio, "facet=category,count:5" ottiene le prime cinque categorie nei risultati dei facet. Se il parametro count è minore del numero di termini univoci, i risultati potrebbero non essere accurati. Ciò è dovuto al modo in cui le query di facet vengono distribuite tra le partizioni. Per ottenere un conteggio accurato in tutte le partizioni, è possibile impostare count su zero o su un valore maggiore o uguale al numero di valori univoci nel campo di tabella visibile. Il compromesso è maggiore la latenza.

"sort" può essere impostato su "count", "-count", "value", "-value". Usare count per ordinare in ordine decrescente in base al conteggio. Usare -count per ordinare in ordine crescente in base al conteggio. Usare il valore per ordinare in ordine crescente in base al valore. Usare -value per ordinare in ordine decrescente in base al valore (ad esempio, "facet=category,count:3,sort:count" ottiene le prime tre categorie nei risultati di facet in ordine decrescente in base al numero di documenti con ogni nome di città). Se le prime tre categorie sono Budget, Motel e Luxury, e Budget ha cinque colpi, Motel ha sei e Luxury ha quattro, allora i bucket sono nell'ordine Motel, Budget, Luxury. Per -value, "facet=rating,sort:-value" produce bucket per tutte le valutazioni possibili, in ordine decrescente in base al valore (ad esempio, se le classificazioni sono da 1 a 5, i bucket vengono ordinati 5, 4, 3, 2, 1, indipendentemente dal numero di documenti corrispondenti a ogni classificazione).

i valori "values" possono essere impostati su valori numerici delimitati da pipe o Edm.DateTimeOffset che specificano un set dinamico di valori di immissione di facet (ad esempio, "facet=baseRate,values:10 | 20" produce tre bucket: uno per la tariffa di base 0 fino a 10, uno per 10 fino a 20 e uno per 20 e superiore. Una stringa "facet=lastRenovationDate,values:2010-02-01T00:00:00Z" produce due bucket: uno per gli alberghi rinnovati prima di febbraio 2010 e uno per gli alberghi rinnovati il 1° febbraio 2010 o versione successiva. I valori devono essere elencati in ordine sequenziale crescente per ottenere i risultati previsti.

"interval" è un intervallo intero maggiore di 0 per numeri, o minuti, ora, giorno, settimana, mese, trimestre, anno per i valori di data e ora. Ad esempio, "facet=baseRate,interval:100" produce bucket in base agli intervalli di frequenza di base di dimensioni 100. Se le tariffe di base sono tutte comprese tra $60 e $600, ci saranno bucket per 0-100, 100-200, 200-300, 300-400, 400-500 e 500-600. La stringa "facet=lastRenovationDate,interval:year" produce un bucket per ogni anno quando gli hotel sono stati rinnovati.

"timeoffset" può essere impostato su ([+-]hh:mm, [+-]hhmm o [+-]hhh). Se usato, il parametro timeoffset deve essere combinato con l'opzione interval e solo quando viene applicato a un campo di tipo Edm.DateTimeOffset. Il valore specifica l'offset dell'ora UTC da tenere in considerazione nell'impostazione dei limiti di tempo. Ad esempio: "facet=lastRenovationDate,interval:day,timeoffset:-01:00" usa il limite del giorno che inizia alle 01:00:00 UTC (mezzanotte nel fuso orario di destinazione).

conteggio e ordinamento possono essere combinati nella stessa specifica del facet, ma non possono essere combinati con intervalli o valori e intervallo e i valori non possono essere combinati insieme.

facet intervallo in base all'ora di data vengono calcolati in base all'ora UTC se non viene specificato l'offset di ora. Ad esempio: per "facet=lastRenovationDate,interval:day", il limite del giorno inizia alle 00:00:00 UTC.
featuresMode (anteprima) booleano Opzionale. I valori validi sono "enabled" e "disabled". Il valore predefinito è "disabled". Valore che specifica se i risultati devono includere funzionalità dei risultati della query, usate per calcolare il punteggio di pertinenza di un documento in relazione alla query, ad esempio in base alla somiglianza dei campi. Usare "enabled" per esporre più funzionalità dei risultati della query: punteggio di somiglianza per campo, frequenza del termine di campo e numero di campi di token univoci corrispondenti. Per altre informazioni, vedere Somiglianza e assegnazione dei punteggi.
$filter corda Opzionale. Espressione di ricerca strutturata nella sintassi OData standard. Solo i campi filtrabili possono essere usati in un filtro. Quando viene chiamato con POST, questo parametro viene denominato filter anziché $filter. Per informazioni dettagliate sul sottoinsieme della grammatica dell'espressione OData supportata da Ricerca per intelligenza artificiale di Azure, vedere Sintassi delle espressioni OData per Ricerca di intelligenza artificiale di Azure.
clou corda Opzionale. Set di nomi di campo delimitati da virgole usati per le evidenziazioni dei risultati. Solo i campi ricercabili possono essere usati per l'evidenziazione dei risultati. Per impostazione predefinita, Ricerca intelligenza artificiale di Azure restituisce fino a cinque evidenziazioni per campo. Il limite è configurabile per campo aggiungendo "-<numero massimo di evidenziazioni>" dopo il nome del campo. Ad esempio, "highlight=title-3,description-10" restituisce fino a tre riscontri evidenziati dal campo del titolo e fino a 10 riscontri dal campo della descrizione. Il numero massimo di evidenziazioni deve essere un numero intero compreso tra 1 e 1000 inclusi.
highlightPostTag corda Opzionale. Il valore predefinito è "</em>". Tag stringa che aggiunge al termine evidenziato. Deve essere impostato con highlightPreTag. I caratteri riservati nell'URL devono essere codificati in percentuale, ad esempio %23 anziché #.
highlightPreTag corda Opzionale. Il valore predefinito è "</em>". Tag stringa che antepone al termine evidenziato. Deve essere impostato con highlightPostTag. I caratteri riservati nell'URL devono essere codificati in percentuale, ad esempio %23 anziché #.
minimumCoverage numero intero Opzionale. I valori validi sono un numero compreso tra 0 e 100, che indica la percentuale dell'indice che deve essere disponibile per il servizio della query prima che possa essere segnalata come operazione riuscita. Il valore predefinito è "100".

copertura del cento percento significa che tutte le partizioni hanno risposto alla richiesta (né problemi di integrità dei servizi né attività di manutenzione ridotte). Nell'impostazione predefinita, minore di full coverage restituisce il codice di stato HTTP 503.

l'abbassamento del valore minimoCoverage può essere utile se si verificano errori 503 e si vuole aumentare la probabilità di esito positivo della query, in particolare per i servizi configurati per una replica. Se si imposta minimumCoverage e Search ha esito positivo, restituisce HTTP 200 e include un valore @search.coverage nella risposta che indica la percentuale dell'indice incluso nella query. In questo scenario, non tutti i documenti corrispondenti sono sicuramente presenti nei risultati della ricerca, ma se la disponibilità della ricerca è più importante del richiamo, la riduzione della copertura può essere una strategia di mitigazione praticabile.
$orderby corda Opzionale. Elenco di espressioni separate da virgole in base a cui ordinare i risultati. Quando viene chiamato con POST, questo parametro viene denominato orderby anziché $orderby. Ogni espressione può essere un nome di campo o una chiamata alla funzione geo.distance(). Ogni espressione può essere seguita da "asc" per indicare l'ascendente e "desc" per indicare la decrescente. Se sono presenti valori Null nel campo di ordinamento, i valori Null vengono visualizzati per primi in ordine crescente e infine in ordine decrescente. Il valore predefinito è crescente. I legami verranno interrotti dai punteggi di corrispondenza dei documenti. Se non viene specificato alcun $orderby, l'ordinamento predefinito è decrescente in base al punteggio di corrispondenza del documento. Esiste un limite di 32 clausole per $orderby.
queryLanguage (anteprima) corda Opzionale. I valori validi sono un linguaggio supportato. Il valore predefinito è "en-us". Questo parametro deve essere impostato se si usa speller=lexicon o queryType=semantic. Il linguaggio specificato in queryLanguage viene usato sia per il controllo ortografico che per i modelli semantici che rerankono i risultati ed estraggono una didascalia o una risposta. Le librerie usate per queryLanguage sono indipendenti da altri attributi di campo basati sulle impostazioni locali, ad esempio analizzatori del linguaggio usati per l'indicizzazione e la ricerca full-text.
queryType corda Opzionale. I valori validi sono "simple", "full" o "semantic" (anteprima). L'impostazione predefinita è "simple". Questo valore viene ignorato per la ricerca vettoriale, ma si applica alla ricerca di testo in scenari ibridi.

"simple" interpreta le stringhe di query usando la sintassi di query semplice che consente simboli come +, *e "". Le query vengono valutate in tutti i campi ricercabili (o i campi indicati in searchFields) in ogni documento per impostazione predefinita.

"full" interpreta le stringhe di query usando la sintassi di query Lucene completa che consente ricerche specifiche del campo e ponderate. La ricerca di intervalli nel linguaggio di query Lucene non è supportata a favore di $filter, che offre funzionalità simili.

"semantica" migliora la precisione dei risultati della ricerca reranking delle prime 50 corrispondenze usando un modello di classificazione sottoposto a training sul corpus Bing per le query espresse in linguaggio naturale anziché parole chiave. Se si imposta il tipo di query su semantica, è necessario impostare anche queryLanguage e semanticConfiguration. Facoltativamente, è possibile impostare le risposte se si desidera restituire anche le prime 3 risposte se l'input della query è stato formulato in linguaggio naturale ("what is a ...) e facoltativamente impostare didascalie per estrarre i passaggi chiave dai documenti con classificazione più alta.
scoringParameter corda Opzionale. Indica i valori per ogni parametro definito in una funzione di assegnazione dei punteggi (ad esempio referencePointParameter) usando il formato "name-value1,value2,..." Quando viene chiamato con POST, questo parametro è denominato scoringParameters anziché scoringParameter. È anche possibile specificarlo come matrice JSON di stringhe in cui ogni stringa è una coppia nome-valori separata.

Per i profili di punteggio che includono una funzione, separare la funzione dall'elenco di input con un carattere -. Ad esempio, una funzione denominata "mylocation" sarebbe "&scoringParameter=mylocation--122.2,44.8". Il primo trattino separa il nome della funzione dall'elenco di valori, mentre il secondo trattino fa parte del primo valore (longitudine in questo esempio).

Per i parametri di assegnazione dei punteggi, ad esempio per il boosting dei tag che possono contenere virgole, è possibile utilizzare virgolette singole. Se i valori stessi contengono virgolette singole, è possibile eseguirne l'escape raddoppiando. Si supponga di avere un parametro di boosting dei tag denominato "mytag" e di voler aumentare i valori dei tag "Hello, O'Brien" e "Smith", l'opzione della stringa di query sarà "&scoringParameter=mytag-'Hello, O''Brien',Smith". Le virgolette sono necessarie solo per i valori contenenti virgole.
scoringProfile corda Opzionale. Nome di un profilo di punteggio per valutare i punteggi di corrispondenza per i documenti corrispondenti per ordinare i risultati.
scoringStatistics corda Opzionale. I valori validi sono "local" o "global". Il valore predefinito è "local". Specificare se calcolare le statistiche di assegnazione dei punteggi, ad esempio la frequenza del documento, a livello globale (in tutte le partizioni) per un punteggio più coerente o in locale (nella partizione corrente) per una latenza inferiore. Vedere Statistiche di assegnazione dei punteggi in Ricerca di intelligenza artificiale di Azure. Le statistiche di assegnazione dei punteggi verranno sempre calcolate in locale per i termini che usano ricerca fuzzy ('~').
ricerca corda Opzionale. Testo da cercare. Questo valore viene ignorato per la ricerca vettoriale, ma si applica alla ricerca di testo in scenari ibridi. Nelle API REST tutti i campi ricercabili vengono cercati per impostazione predefinita, a meno che non venga specificato searchFields. Nell'indice il testo in un campo ricercabile viene tokenizzato, in modo che più termini possano essere separati da spazi vuoti, ad esempio 'search=hello world'. Per trovare una corrispondenza con qualsiasi termine, usare * (può essere utile per le query di filtro booleane). L'omissione di questo parametro ha lo stesso effetto di impostarlo su *. Per informazioni specifiche sulla sintassi di ricerca, vedere sintassi di query semplici.

i risultati possono talvolta risultare sorprendenti quando si eseguono query su campi ricercabili. Il tokenizer include la logica per gestire i casi comuni al testo inglese, ad esempio apostrofi, virgole in numeri e così via. Ad esempio, 'search=123,456' corrisponderà a un singolo termine '123.456' anziché ai singoli termini '123' e '456', poiché le virgole vengono usate come separatori di migliaia per numeri di grandi dimensioni in inglese. Per questo motivo, è consigliabile usare spazi vuoti anziché punteggiatura per separare i termini nel parametro di ricerca.
searchMode corda Opzionale. I valori validi sono "any" o "all" Defaults to "any". Specifica se deve essere trovata una corrispondenza tra uno o tutti i termini di ricerca per contare il documento come corrispondenza.
searchFields corda Opzionale. Elenco di nomi di campo delimitati da virgole in cui cercare il testo specificato. I campi di destinazione devono essere contrassegnati come ricercabili nello schema dell'indice e devono essere di tipo Edm.String, Edm.ComplexTypeo Collection(Edm.String).
$select corda Opzionale. Elenco di campi delimitati da virgole da includere nel set di risultati. In questa clausola possono essere inclusi solo i campi contrassegnati come recuperabili. Se non specificato o impostato su *, tutti i campi contrassegnati come recuperabili nello schema vengono inclusi nella proiezione. Quando viene chiamato con POST, questo parametro viene denominato select anziché $select.
semanticConfiguration (anteprima) corda Opzionale. Obbligatorio se queryType="semantic". Nome della configurazione semantica in cui sono elencati i campi da usare per la classificazione semantica, le didascalie, le evidenziazioni e le risposte. Per altre informazioni, vedere Creare una query semantica.
sessionId corda Opzionale. L'uso di sessionId consente di migliorare la coerenza del punteggio di pertinenza per i servizi di ricerca con più repliche. Nelle configurazioni con più repliche possono esserci lievi differenze tra i punteggi di pertinenza dei singoli documenti per la stessa query. Quando viene fornito un ID sessione, il servizio esegue il massimo sforzo per instradare una determinata richiesta alla stessa replica per tale sessione. Tenere presente che riutilizzare ripetutamente gli stessi valori id sessione può interferire con il bilanciamento del carico delle richieste tra repliche e influire negativamente sulle prestazioni del servizio di ricerca. Il valore usato come sessionId non può iniziare con un carattere '_'. Se un servizio non ha repliche, questo parametro non ha alcun effetto sulle prestazioni o sulla coerenza dei punteggi.
$skip numero intero Opzionale. Numero di risultati della ricerca da ignorare. Quando viene chiamato con POST, questo parametro viene denominato skip anziché $skip. Questo valore non può essere maggiore di 100.000. Se è necessario analizzare i documenti in sequenza, ma non è possibile usare $skip a causa di questa limitazione, è consigliabile usare $orderby in un campo con valori univoci per ogni documento nell'indice (ad esempio la chiave del documento) e $filter con una query di intervallo.
correttore ortografico (anteprima) Corda Opzionale. I valori validi sono "none" e "lessico". Il valore predefinito è "none". Migliorare il richiamo correggendo i singoli termini di query di ricerca. È possibile usarlo su tipi di query semplici, completi e semantici. Se usato, il parametro del correttore ortografico richiede queryLanguage. Per altre informazioni ed esempi, vedere Aggiungere il controllo ortografico alle query.
$top numero intero Opzionale. Numero di risultati della ricerca da recuperare. Il valore predefinito è 50. Quando viene chiamato con POST, questo parametro viene denominato top anziché $top. Se si specifica un valore maggiore di 1000 e sono presenti più di 1000 risultati, verranno restituiti solo i primi 1000 risultati, insieme a un collegamento alla pagina successiva dei risultati (vedere "@odata.nextLink" nell'esempio seguente).

Ricerca di intelligenza artificiale di Azure usa paging lato server per impedire alle query di recuperare troppi documenti contemporaneamente. La dimensione predefinita della pagina è 50, mentre la dimensione massima della pagina è 1000. Ciò significa che per impostazione predefinita documenti di ricerca restituisce al massimo 50 risultati se non si specifica $top. Se sono presenti più di 50 risultati, la risposta include informazioni per recuperare la pagina successiva di al massimo 50 risultati (vedere "@odata.nextLink" e "@search.nextPageParameters" nell'Esempi riportato di seguito. Analogamente, se si specifica un valore maggiore di 1000 per $top e sono presenti più di 1000 risultati, vengono restituiti solo i primi 1000 risultati, insieme alle informazioni per recuperare la pagina successiva di al massimo 1000 risultati.
vettori (anteprima) array Opzionale. Il tipo di oggetto all'interno della matrice è una query vettoriale. Parametri di query per le query vettoriali.

"value" è la rappresentazione vettoriale di una query di ricerca. Questa rappresentazione deve essere formata esternamente. Ricerca di intelligenza artificiale di Azure non crea incorporamenti.

"k" è un numero intero che specifica il numero di vicini più vicini da restituire come risultati principali. Il valore predefinito è 50. Il valore minimo è 1 e il valore massimo è 10.000.

"fields" è un nome di campo di elenco delimitato da virgole contenente dati vettoriali. Solo i campi di tipo Collection(Edm.Single) possono essere inclusi nell'elenco "campi".

Risposta

Codice di stato: 200 OK viene restituito per una risposta con esito positivo. In questo articolo sono disponibili due risposte di esempio, ognuna per la ricerca semantica e le funzionalitàMode.

Risposta di esempio per la query semantica

Il primo esempio mostra la risposta completa per il risultato più alto per la query semantica "come si formano le nuvole".

  • "@search.answers" viene visualizzato quando si specifica il parametro answers e quando la query e i campi di destinazione nell'indice contengono contenuto che può essere riconosciuto come risposta. Matrice @search.answers con chiave, testo ed evidenziazioni. Il punteggio è un indicatore della forza della risposta.

  • "value" è il corpo della risposta. Il @search.rerankerScore viene assegnato dall'algoritmo di classificazione semantica e viene usato per classificare i risultati (@search.score proviene dall'algoritmo di somiglianza BM25, usato per assegnare punteggi ai risultati iniziali). Le didascalie includono testo normale e versioni evidenziate. Questo esempio è stato creato usando le competenze di riconoscimento delle entità e OCR. I campi per il contenuto estratto e unito vengono inclusi nella risposta.

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

Risposta di esempio per featuresMode

Questo esempio mostra l'output "@search.features" di una query che include 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)
  }

Esempi

Per altri esempi, vedere Sintassi delle espressioni OData per Ricerca di intelligenza artificiale di Azure.

esempio di : ricerca semplice

Trovare documenti nell'indice usando una sintassi di query semplice. Questa query restituisce gli hotel in cui i campi ricercabili contengono i termini "comfort" e "location" ma non "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"  
    }  

Mancia

L'uso di searchMode=all sostituisce il valore predefinito di searchMode=any, assicurando che -motel significa "AND NOT" anziché "OR NOT". Senza searchMode=all, si ottiene "OR NOT" che si espande invece di limitare i risultati della ricerca e questo può essere contro-intuitivo per alcuni utenti.

Esempio di : di ricerca Lucene completa

Trovare documenti nell'indice usando la sintassi di query Lucene (vedere sintassi delle query Lucene in Ricerca di intelligenza artificiale di Azure). Questa query restituisce gli hotel in cui il campo categoria contiene il termine "budget" e tutti i campi ricercabili contenenti la frase "recentemente rinnovata". I documenti contenenti la frase "recentemente rinnovati" sono classificati più in alto in seguito al termine valore boost (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"  
}  

Esempio di : ricerca semantica

Richiamare il modello di classificazione semantica con risposte, didascalie e contenuto evidenziato. La risposta per questa query è disponibile nella sezione precedente.

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

Esempio di : ricerca vettoriale

Per un indice con campi di tipo Collection(Edm.Single) e una configurazione vettoriale, è possibile specificare i parametri di query vettoriali. I parametri della query vettoriale includono i campi vettoriali inclusi nell'ambito per la query, il numero "k" di riscontri principali da restituire e una rappresentazione vettoriale dell'input della query.

L'aggiunta di un parametro "select" è utile se l'indice include campi di testo. La corrispondenza e la pertinenza sono basate su vettori, ma i campi contenenti contenuto leggibile sono più utili per la lettura dei risultati. In alternativa, è possibile scrivere codice che converte i dati vettoriali nei risultati della ricerca in testo.

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

Esempio di : orderby

Cercare nell'indice e restituire i risultati ordinati in base alla data in ordine decrescente.

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

esempio di : filtrare usando un'espressione OData

Recuperare documenti corrispondenti a un'espressione di filtro specifica:

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

esempio : di ricerca in facet

In una ricerca in base a facet cercare categorie, classificazioni, tag e elementi con baseRate in intervalli specifici.

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

Si noti che l'ultimo facet si trova in un sottocampo. I facet contano il documento padre (Hotel) e non i documenti secondari intermedi (Rooms), quindi la risposta determinerà il numero di hotel che dispongono di camere in ogni bucket di prezzo.

esempio : restringere un di query in facet

Usando un filtro, limitare il risultato della query in base a facet precedente dopo che l'utente seleziona Rating 3 e category "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'"  
    }  

esempio : ricerca in base a facet con limiti per ogni categoria

In una ricerca in base a facet impostare un limite superiore per i termini univoci restituiti in una query. Il valore predefinito è 10, ma è possibile aumentare o diminuire questo valore usando il parametro count sull'attributo facet. Questo esempio restituisce facet per città, limitato a 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" ]  
    }  

esempio : ricerca in campo

Cercare l'indice all'interno di campi specifici (ad esempio, un campo lingua)

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

Cercare l'indice in più campi. Ad esempio, è possibile archiviare ed eseguire query su campi ricercabili in più lingue, tutti all'interno dello stesso indice. Se le descrizioni in inglese e francese coesistono nello stesso documento, è possibile restituire uno o tutti i risultati della query:

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

È possibile eseguire una query su un solo indice alla volta. Non creare più indici per ogni linguaggio, a meno che non si prevede di eseguire query una alla volta.

esempio di : paging dei risultati

Ottenere la prima pagina di elementi (la dimensione della pagina è 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  
    }  

Ottenere la seconda pagina di elementi (la dimensione della pagina è 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  
    }  

esempio : limitare i campi in un set di risultati

Recuperare un set specifico di campi:

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

esempio di : evidenziazione dei risultati

Cercare nell'indice e restituire frammenti con evidenziazioni dei risultati:

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

Esempio di : ricerca geospaziale

Eseguire una ricerca nell'indice e restituire i documenti ordinati da vicino a un percorso di riferimento più lontano:

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

esempio: "trova da me" (aumentare la rilevanza delle località nelle vicinanze

Eseguire una ricerca nell'indice presupponendo che sia presente un profilo di punteggio denominato "geo" con due funzioni di punteggio della distanza, una che definisce un parametro denominato "currentLocation" e una che definisce un parametro denominato "lastLocation". Nell'esempio seguente "currentLocation" ha un delimitatore di un singolo trattino (-). È seguito da coordinate di longitudine e latitudine, dove longitudine è un valore negativo.

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

esempio : eseguire una query su un indice completo anziché su partizioni

Trovare i documenti nell'indice, favorendo l'assegnazione dei punteggi coerente rispetto alla latenza inferiore. Questa query calcola le frequenze dei documenti nell'intero indice e fa il massimo sforzo per la destinazione della stessa replica per tutte le query all'interno della stessa "sessione", che consente di generare una classificazione stabile e riproducibile.

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

esempio: statistiche di punteggio (featuresMode)

Trovare i documenti nell'indice e restituire un elenco di funzionalità di recupero delle informazioni per ogni risultato che descrive l'assegnazione dei punteggi tra il documento corrispondente e la query. La query calcola anche le frequenze dei documenti nell'intero indice per produrre un punteggio più coerente.

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

Un esempio di risposta che include search.features è simile al seguente:

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

Definizioni

In questa sezione vengono fornite informazioni dettagliate sui parametri troppo complessi da coprire nella tabella principale.

Collegamento Descrizione
queryLanguage Elenco delle lingue supportate per il correttore ortografico e la ricerca semantica.

queryLanguage

I valori validi per il parametro queryLanguage vengono forniti nella tabella seguente, nella colonna "queryLanguage" e non fanno distinzione tra maiuscole e minuscole. Il valore predefinito per il parametro nel suo complesso è "en-us". All'interno di ogni lingua è presente una variante predefinita per ogni codice linguistico a due caratteri. Ad esempio, se si specifica "es", per impostazione predefinita viene usato "es-us". Il parametro queryLanguage è necessario per una richiesta di query che include "queryType=semantic" o "speller=lessico". Esiste un solo valore queryLanguage per l'intera richiesta e tale valore verrà usato per la classificazione semantica, le didascalie, le risposte e il correttore ortografico (non esiste alcun override per le singole funzionalità).

Al momento, il supporto linguistico varia in base alla funzionalità. Solo inglese, spagnolo, francese e tedesco sono supportati per il set completo di funzionalità, ma si noti che il controllo ortografico implementa un minor numero di varianti.

Se si specifica un codice di linguaggio non supportato da una determinata funzionalità, ad esempio EN-GB con il correttore ortografico, il servizio restituisce HTTP 400.

Per altre informazioni sull'uso di ogni funzionalità, vedere Abilitare la classificazione semantica e le didascalie, Restituire una risposta semanticae Aggiungere il controllo ortografico alle query.

La designazione "(anteprima)" indica che il test di convalida in tutte le funzionalità (classificazione semantica, didascalie, risposte e controllo ortografico) è in corso o in sospeso. È consigliabile usare tutte le varianti di lingua nella tabella seguente, ma è consigliabile testare più lingue di anteprima per assicurarsi che i risultati siano validi per il contenuto. Le lingue con un segno di spunta e nessuna designazione di anteprima sono state convalidate usando set di dati equivalenti, con un guadagno misurabile per pertinenza.

Lingua queryLanguage Classificazione semantica e didascalie Risposta semantica Speller
Inglese [en] en, en-US (impostazione predefinita), en-GB, en-IN, en-CA, en-AU ✔️ ✔️ ✔️ (en, en-US)
Francese [fr] fr, fr-FR (impostazione predefinita), fr-CA ✔️ ✔️ ✔️ (fr, fr-FR)
Tedesco [de] de, de-DE (impostazione predefinita) ✔️ ✔️ ✔️ (de, de-DE)
Spagnolo [es] es, es-ES (impostazione predefinita), es-MX ✔️ ✔️ ✔️ (es, es-ES)
Italiano [it] it, it-IT (impostazione predefinita) ✔️ ✔️
Giapponese [ja] ja, ja-JP (impostazione predefinita) ✔️ ✔️ (anteprima)
Cinese [zh] zh, zh-CN (impostazione predefinita), zh-TW ✔️ ✔️ (anteprima)
Portoghese [pt] pt, pt-BR (impostazione predefinita), pt-PT ✔️ ✔️ (anteprima)
Olandese [nl] nl, nl-BE, nl-NL (impostazione predefinita) ✔️ (anteprima) ✔️ (anteprima) ✔️ (nl, nl-NL)
Arabo [ar] ar, ar-SA (impostazione predefinita), ar-EG, ar-MA, ar-KW, ar-JO ✔️ (anteprima) ✔️ (anteprima)
Armeno hy-AM (impostazione predefinita) ✔️ (anteprima) ✔️ (anteprima)
Bangla bn-IN (impostazione predefinita) ✔️ (anteprima) ✔️ (anteprima)
Basco eu-ES (impostazione predefinita) ✔️ (anteprima) ✔️ (anteprima)
Bulgaro [bg] bg, bg-BG (impostazione predefinita) ✔️ (anteprima) ✔️ (anteprima)
Catalano [ca] ca, ca-ES (impostazione predefinita) ✔️ (anteprima) ✔️ (anteprima)
Croato [hr] hr, hr-HR (impostazione predefinita), hr-BA ✔️ (anteprima) ✔️ (anteprima)
Ceco [cs] cs, cs-CZ (impostazione predefinita) ✔️ (anteprima) ✔️ (anteprima)
Danese [da] da, da-DK (impostazione predefinita) ✔️ (anteprima) ✔️ (anteprima)
Estonian [et] et, et-EE (impostazione predefinita) ✔️ (anteprima) ✔️ (anteprima)
Finlandese [fi] fi, fi-FI (impostazione predefinita) ✔️ (anteprima) ✔️ (anteprima)
Galiziano gl-ES (impostazione predefinita) ✔️ (anteprima) ✔️ (anteprima)
Greco [el] el, el-GR (impostazione predefinita) ✔️ (anteprima) ✔️ (anteprima)
Gujarati gu-IN (impostazione predefinita) ✔️ (anteprima) ✔️ (anteprima)
Ebraico he-IL (impostazione predefinita) ✔️ (anteprima) ✔️ (anteprima)
Hindi [hi] hi, hi-IN (impostazione predefinita) ✔️ (anteprima) ✔️ (anteprima)
Ungherese [hu] hu, hu-HU (impostazione predefinita) ✔️ (anteprima) ✔️ (anteprima)
Islandese [is] is, is-IS (impostazione predefinita) ✔️ (anteprima) ✔️ (anteprima)
Indonesiano [id] id, id-ID (impostazione predefinita) ✔️ (anteprima) ✔️ (anteprima)
Irlandese ga-IE (impostazione predefinita) ✔️ (anteprima) ✔️ (anteprima)
Kannada kn-IN (impostazione predefinita) ✔️ (anteprima) ✔️ (anteprima)
Coreano [ko] ko, ko-KR (impostazione predefinita) ✔️ (anteprima) ✔️ (anteprima)
Lettone [lv] lv, lv-LV (impostazione predefinita) ✔️ (anteprima) ✔️ (anteprima)
Lituano [lt] lt, lt-LT (impostazione predefinita) ✔️ (anteprima) ✔️ (anteprima)
Malayalam ml-IN (impostazione predefinita) ✔️ (anteprima) ✔️ (anteprima)
Malaysian [ms] ms, ms-MY (impostazione predefinita), ms-BN ✔️ (anteprima) ✔️ (anteprima)
Marathi mr-IN (impostazione predefinita) ✔️ (anteprima) ✔️ (anteprima)
Norvegese [no] no, no-NO (impostazione predefinita), nb-NO ✔️ (anteprima) ✔️ (anteprima)
Farsi fa-AE (impostazione predefinita) ✔️ (anteprima) ✔️ (anteprima)
Polacco [pl] pl, pl-PL (impostazione predefinita) ✔️ (anteprima) ✔️ (anteprima)
Punjabi pa-IN (impostazione predefinita) ✔️ (anteprima) ✔️ (anteprima)
Romeno [ro] ro, ro-RO (impostazione predefinita) ✔️ (anteprima) ✔️ (anteprima)
Russo [ru] ru, ru-RU (impostazione predefinita) ✔️ (anteprima) ✔️ (anteprima)
Serbo [sr] (alfabeto cirillico o latino) sr, sr-BA (impostazione predefinita), sr-ME, sr-RS ✔️ (anteprima) ✔️ (anteprima)
Slovacco [sk] sk, sk-SK (impostazione predefinita) ✔️ (anteprima) ✔️ (anteprima)
Sloveno [sl] sl, sl-SL (impostazione predefinita) ✔️ (anteprima) ✔️ (anteprima)
Tamil [ta] ta, ta-IN (impostazione predefinita) ✔️ (anteprima) ✔️ (anteprima)
Svedese [sv] sv, sv-SE (impostazione predefinita) ✔️ (anteprima) ✔️ (anteprima)
Telugu te-IN (impostazione predefinita) ✔️ (anteprima) ✔️ (anteprima)
Thai [th] th, th-TH (impostazione predefinita) ✔️ (anteprima) ✔️ (anteprima)
Turco [tr] tr, tr-TR (impostazione predefinita) ✔️ (anteprima) ✔️ (anteprima)
Ucraino [uk] uk, uk-UA (impostazione predefinita) ✔️ (anteprima) ✔️ (anteprima)
Urdu ur-PK (impostazione predefinita) ✔️ (anteprima) ✔️ (anteprima)
Vietnamita [va] va, vi-VN (impostazione predefinita) ✔️ (anteprima) ✔️ (anteprima)

Vedere anche