

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Cerca riferimento all'API per Amazon CloudSearch
<a name="search-api"></a>

**Topics**
+ [Cerca](#search-request)
+ [Invio di richieste di suggerimenti in Amazon CloudSearch](#submitting-suggest-requests)
+ [Suggerimento](#suggest)
+ [Errori dei servizi di ricerca](#search-service-errors)

Utilizzi l'API di ricerca per inviare richieste di ricerca o suggerimenti al tuo CloudSearch dominio Amazon. Per ulteriori informazioni sulla ricerca, vedi [Ricerca nei tuoi dati con Amazon CloudSearch](searching.md). Per ulteriori informazioni sui suggerimenti, vedi [Ottenere suggerimenti per il completamento automatico in Amazon CloudSearch](getting-suggestions.md).

Gli altri APIs che usi per interagire con Amazon CloudSearch sono: 
+ [API di configurazione](configuration-api.md): per configurare e gestire il dominio di ricerca.
+ [API del servizio documenti](document-service-api.md): per inviare i dati da ricercare.

## Cerca
<a name="search-request"></a>

In questa sezione vengono descritti i messaggi di richiesta e risposta HTTP per la risorsa di ricerca.

### Sintassi di ricerca
<a name="search-syntax"></a>

```
GET /2013-01-01/search
```

### Intestazioni delle richieste di ricerca
<a name="search-request-headers"></a>

HOST  
L'endpoint delle richieste di ricerca per il dominio sottoposto a query. Puoi utilizzare [DescribeDomains](API_DescribeDomains.md) per recuperare l'endpoint delle richieste di ricerca del dominio.   
Obbligatorio: sì

### Parametri delle richieste di ricerca
<a name="search-request-parameters"></a>

cursor  
Recupera un valore di cursore che puoi utilizzare per scorrere set di risultati i grandi dimensioni. Utilizza il parametro `size` per controllare il numero di occorrenze da includere in ogni risposta. In una richiesta è possibile specificare o il parametro `cursor` o il parametro `start`, in quanto si escludono a vicenda. Per ulteriori informazioni, consulta [Scorrere le pagine dei risultati](paginating-results.md).  
Per ottenere il primo cursore, specifica `cursor=initial` nella tua richiesta iniziale. Nelle richieste successive specifica il valore di cursore restituito nella sezione delle occorrenze della risposta.   
Ad esempio, i set di richieste seguenti impostano il valore del cursore su `initial` e il parametro `size` su 100 per ottenere il primo set di occorrenze. Il cursore per il set di occorrenze successivo è incluso nella risposta.  

```
search?q=john&cursor=initial&size=100&return=_no_fields
{
   "status": {
      "rid": "+/Xu5s0oHwojC6o=",
      "time-ms": 15
   },
   "hits": {
      "found": 503,
      "start": 0,
      "cursor": "VegKzpYYQW9JSVFFRU1UeWwwZERBd09EUTNPRGM9ZA",
      "hit": [
         {"id": "tt0120601"},
         {"id": "tt1801552"},
         ...
      ]
   }
}
```
Per ottenere il set di occorrenze successivo, è necessario specificare il valore de cursore e il numero di occorrenze da recuperare.  

```
search?q=john&cursor=VegKzpYYQW9JSVFFRU1UeWwwZERBd09EUTNPRGM9ZA&size=100
```
▬Tipo: stringa  
Obbligatorio: no

expr.NAME  
Definisce un'espressione che può essere utilizzata per ordinare i risultati. È anche possibile specificare un'espressione come campo incluso nei risultati. Per ulteriori informazioni sulla definizione e sull'utilizzo delle espressioni, vedi [Configurazione di espressioni](configuring-expressions.md).  
È possibile definire e utilizzare più espressioni in una richiesta di ricerca. Ad esempio, la seguente richiesta crea due espressioni che vengono utilizzate per ordinare i risultati e le include nei risultati della ricerca:  

```
search?q=(and (term field=genres 'Sci-Fi')(term field=genres 'Comedy'))&q.parser=structured
&expr.expression1=_score*rating
&expr.expression2=(1/rank)*year
&sort=expression1 desc,expression2 desc
&return=title,rating,rank,year,_score,expression1,expression2
```
▬Tipo: stringa  
Obbligatorio: no

facet.FIELD   
Speciifica un campo per il quale desideri ottenere informazioni sui facet: `FIELD` è il nome del campo. Il campo specificato deve essere abilitato per i facet nella configurazione del dominio. Le opzioni dei facet sono specificate come oggetto JSON. Se l'oggetto JSON è vuoto, `facet.FIELD={}`, il numero di facet viene calcolato per tutti i valori dei campi, i facet vengono archiviati in base al loro numero e nei risultati vengono restituiti i primi 10 facet.   
Puoi specificare tre opzioni nell'oggetto JSON:  
+ `sort` specifica il modo in cui si desidera ordinare i facet nei risultati: `bucket` o `count`. Specifica `bucket` per impostare l'ordine alfabetico o numerico in base al valore di facet (in ordine crescente). Specifica `count` per ordinare i facet in base ai conteggi calcolati per ciascun valore di facet (in ordine decrescente). Per recuperare i conteggi dei facet per determinati valori o intervalli di valori, utilizza l'opzione `buckets` anziché `sort`. 
+ `buckets` specifica una serie di valori o intervalli di facet da conteggiare. I bucket vengono restituiti nell'ordine in cui sono specificati nella richiesta. Per specificare un intervallo di valori, utilizza una virgola (,) per separare i limiti superiore e inferiore e inserisci l'intervallo tra parentesi tonde o parentesi graffe. Una parentesi quadra, [o], indica che il limite è incluso nell'intervallo, una parentesi graffa, \$1o\$1, esclude il limite. Puoi omettere il limite superiore o inferiore per specificare un intervallo aperto. Quando si omette un limite, è necessario utilizzare un tutore riccio. Le `size` opzioni `sort` and non sono valide se specificate. `buckets`
+ `size` specifica il numero massimo di facet da includere nei risultati. Per impostazione predefinita, i CloudSearch resi di Amazon rientrano tra i primi 10. Il parametro `size` è valido solo quando si specifica l'opzione `sort`, ma non può essere utilizzato in combinazione con `buckets`.
Ad esempio, la seguente richiesta ottiene i conteggi dei facet per il campo `year`, ordina i conteggi dei facet in base al valore e restituisce i conteggi per i primi tre:  

```
facet.year={sort:"bucket", size:3}
```
Per specificare i valori o l'intervallo di valori per cui calcolare i conteggi dei facet, utilizza l'opzione `buckets`. Ad esempio, la seguente richiesta calcola e restituisce i conteggi dei facet in base alla decade:  

```
facet.year={buckets:["[1970,1979]","[1980,1989]",
             "[1990,1999]","[2000,2009]",
             "[2010,}"]}
```
 È anche possibile specificare valori singoli come bucket:  

```
facet.genres={buckets:["Action","Adventure","Sci-Fi"]}
```
Tieni presente che i valori delle sfaccettature fanno distinzione tra maiuscole e minuscole: per i dati del IMDb filmato di esempio, se specifichi `["action","adventure","sci-fi"]` invece di, tutti i conteggi delle `["Action","Adventure","Sci-Fi"]` faccette sono pari a zero.   
▬Tipo: stringa  
Obbligatorio: no

format  
Specifica il tipo di contenuti della risposta.   
Tipo: String  
Valori validi: json\$1xml  
Impostazione predefinita: json  
Obbligatorio: no

fq  
Specifica una query strutturata che filtra i risultati di una ricerca senza modificare il modo in cui i risultati vengono valutati e ordinati. Utilizza `fq` in combinazione con il parametro `q` per filtrare i documenti che soddisfano i vincoli specificati nel parametro `q`. L'applicazione di un filtro consente semplicemente di controllare i documenti corrispondenti che vengono inclusi nei risultati, senza influenzare il modo in cui vengono valutati e ordinati. Il parametro `fq` supporta la sintassi delle query strutturate. Per ulteriori informazioni sull'uso dei filtri, vedi [Filtraggio dei documenti corrispondenti](filtering-results.md). Per ulteriori informazioni sulle query strutturate, vedi [Sintassi di ricerca strutturata](#structured-search-syntax).   
▬Tipo: stringa  
Obbligatorio: no

highlight.FIELD  
Recupera evidenziazioni per le corrispondenze nel campo `text` o `text-array` specificato. Le opzioni di evidenziazione sono specificate come oggetto JSON. Se l'oggetto JSON è vuoto, il testo del campo restituito viene trattato come testo HTML e la prima corrispondenza viene evidenziata con tag di enfasi: `<em>search-term</em>`.   
Puoi specificare quattro opzioni nell'oggetto JSON:  
+ `format`—specifica il formato dei dati nel campo di testo: o. `text` `html` Quando i dati vengono restituiti come HTML, tutti i caratteri non alfanumerici vengono codificati. Il valore predefinito è `html`. 
+ `max_phrases`—specifica il numero massimo di occorrenze dei termini di ricerca che si desidera evidenziare. Per impostazione predefinita, la prima occorrenza è evidenziata. 
+ `pre_tag`—specifica la stringa da anteporre a un'occorrenza di un termine di ricerca. Il valore predefinito per le evidenziazioni HTML è `<em>`. Il valore predefinito per le evidenziazioni di testo è `*`. 
+ `post_tag`—specifica la stringa da aggiungere a un'occorrenza di un termine di ricerca. Il valore predefinito per le evidenziazioni HTML è `</em>`. Il valore predefinito per le evidenziazioni di testo è `*`. 
Esempi: `highlight.plot={}`, `highlight.plot={format:'text',max_phrases:2,pre_tag:'<b>',post_tag:'</b>'}`  
▬Tipo: stringa  
Obbligatorio: no

partial  
Controlla se vengono restituiti risultati parziali se una o più partizioni di indice non sono disponibili. Quando l'indice di ricerca è partizionato su più istanze di ricerca, per impostazione predefinita Amazon restituisce risultati CloudSearch solo se è possibile interrogare ogni partizione. Ciò significa che l'errore di una singola istanza di ricerca può portare a errori di server interni (5xx). Quando lo specifichi. `partial=true` Amazon CloudSearch restituisce tutti i risultati disponibili e include la percentuale di documenti cercati nei risultati di ricerca (`percent-searched`). Ciò consente di attenuare la carenza dei risultati della ricerca agli occhi degli utenti. Ad esempio, invece di non visualizzare alcun risultato, è possibile visualizzare i risultati parziali e un messaggio che indica che i risultati potrebbero essere incompleti a causa di un'interruzione temporanea del sistema.  
Tipo: Booleano  
Impostazione predefinita: False  
Obbligatorio: no

pretty  
Formatta l'output JSON; in modo da renderlo più facilmente leggibile.   
Tipo: Booleano  
Impostazione predefinita: False  
Obbligatorio: no

q   
I criteri di ricerca per la richiesta. Il modo in cui si specificano criteri di ricerca dipende dal parser di query utilizzato per la richiesta e dalle opzioni di parser specificate nel parametro `q.options`. Per impostazione predefinita, il parser di query `simple` viene utilizzato per elaborare le richieste. Per utilizzare il parser di query `structured`, `lucene` o `dismax`, è necessario specificare anche il parametro `q.parser`. Per ulteriori informazioni sulla specifica dei criteri di ricerca, vedi [Ricerca nei tuoi dati con Amazon CloudSearch](searching.md).  
Tipo: stringa  
Obbligatorio: sì

q.options   
Puoi configurare le opzioni per il parser di query specificato nel parametro `q.parser`. Le opzioni sono specificate come oggetto JSON, ad esempio: `q.options={defaultOperator: 'or', fields: ['title^5','description']}`.   
Le opzioni che è possibile configurare variano in base al parser utilizzato:  
+ `defaultOperator`—L'operatore predefinito utilizzato per combinare singoli termini nella stringa di ricerca. Ad esempio: `defaultOperator: 'or'`. Per il parser `dismax`, è necessario specificare un valore che rappresenta la percentuale di termini della stringa di ricerca (arrotondata per difetto) che deve corrispondere, anziché un operatore predefinito. Il valore `0%` equivale a OR e il valore `100%` equivale a AND. La percentuale deve essere specificata come valore compreso nell'intervallo 0-100, seguito dal simbolo di percentuale (%). Ad esempio, `defaultOperator: 50%`. Valori validi: `and`, `or`, una percentuale nell'intervallo 0%-100% (`dismax`). Impostazione predefinita: `and` (`simple`, `structured`, `lucene`) o `100` (`dismax`). Valida per: `simple`, `structured`, `lucene` e `dismax`. 
+ `fields`—Una matrice dei campi in cui eseguire la ricerca quando non è specificato alcun campo in una ricerca. Se in una ricerca non sono specificati campi e non è specificata questa opzione, la ricerca viene eseguita in tutti i campi `text` e `text-array` configurati staticamente. Puoi specificare un peso per ogni campo per controllare l'importanza relativa di ogni campo quando Amazon CloudSearch calcola i punteggi di pertinenza. Per specificare una rilevanza del campo, aggiungi un accento circonflesso (`^`) e la rilevanza al nome del campo. Ad esempio, per aumentare la rilevanza del campo `title` rispetto al campo `description`, è possibile specificare: `fields: ['title^5','description']`. Valori validi: il nome di qualsiasi campo configurato e un valore numerico facoltativo maggiore di zero. Impostazione predefinita: tutti i campi `text` e `text-array` configurati staticamente. Per impostazione predefinita, i campi dinamici e i campi `literal` non sono oggetto di ricerca. Valida per: `simple`, `structured`, `lucene` e `dismax`. 
+ `operators`—Un array di operatori o caratteri speciali che desideri disabilitare per il semplice parser di query. Se si disabilitano gli operatori `and`, `or` o `not`, gli operatori corrispondenti (`+`, `|`, `-`) non hanno alcun significato speciale e vengono eliminati dalla stringa di ricerca. Analogamente, disabilitando `prefix` si disabilita l'operatore carattere jolly (`*`) e disabilitando `phrase` si disabilita la possibilità di cercare periodi racchiudendoli tra doppie virgolette. Disabilitando la precedenza si disabilita la possibilità di controllare l'ordine di precedenza utilizzando le parentesi. Disabilitando `near` si disabilita la possibilità di utilizzare l'operatore \$1 per eseguire una ricerca di frasi simili. La disabilitazione dell'operatore `fuzzy` disabilita la possibilità di utilizzare l'operatore \$1 per eseguire una ricerca fuzzy. `escape` disabilita la possibilità di utilizzare una barra rovesciata (`\`) per inserire caratteri speciali di escape all'interno della stringa di ricerca. La disabilitazione dello spazio è un'opzione avanzata che impedisce al parser di trasformare le stringhe in token in corrispondenza degli spazi e che può essere utile per il vietnamita (impedisce la separazione non corretta delle parole vietnamite). Ad esempio, è possibile disabilitare tutti gli operatori diversi dall'operatore periodo per supportare solo le query di termini e periodi semplici: `operators:['and', 'not', 'or', 'prefix']`. Valori validi: `and`, `escape`, `fuzzy`, `near`, `not`, `or`, `phrase`, `precedence`, `prefix`, `whitespace`. Impostazione predefinita: tutti gli operatori e i caratteri speciali sono abilitati. Valida per: `simple`. 
+ `phraseFields`—Una matrice dei `text-array` campi `text` o che si desidera utilizzare per la ricerca di frasi. Quando i termini della stringa di ricerca appaiono molto vicini all'interno di un campo, il campo ha un punteggio più elevato. È possibile aumentare tale punteggio specificando una rilevanza per ogni campo. L'opzione `phraseSlop` controlla in che misura le corrispondenze possono discostarsi dalla stringa di ricerca e avere comunque una rilevanza elevata. Per specificare una rilevanza del campo, aggiungi un accento circonflesso (`^`) e la rilevanza al nome del campo. Ad esempio, per aumentare la rilevanza delle corrispondenze dei periodi nel campo `title` rispetto al campo `abstract`, è possibile specificare: `phraseFields:['title^3', 'abstract']` Valori validi: il nome di un campo `text` o `text-array` e un valore numerico facoltativo maggiore di zero. Impostazione predefinita: nessun campo. Se non specifichi un campo con `phraseFields`, l'assegnazione del punteggio di prossimità è disabilitato, anche se `phraseSlop` è specificato. Valida per: `dismax`.
+ `phraseSlop`—Un valore intero che specifica in che misura le corrispondenze possono deviare dalla frase di ricerca e comunque essere aumentate in base ai pesi specificati nell'opzione. `phraseFields` Ad esempio, `phraseSlop: 2`. Inoltre, è necessario specificare `phraseFields` per abilitare l'assegnazione del punteggio di prossimità. Valori validi: numeri interi positivi. Impostazione predefinita: 0. Valida per: `dismax`.
+ `explicitPhraseSlop`—Un valore intero che specifica in che misura una corrispondenza può deviare dalla frase di ricerca quando la frase è racchiusa tra virgolette doppie nella stringa di ricerca. (Le frasi che superano questa distanza di prossimità non sono considerate una corrispondenza.) `explicitPhraseSlop: 5`. Valori validi: numeri interi positivi. Impostazione predefinita: 0. Valida per: `dismax`.
+ `tieBreaker`—Quando un termine nella stringa di ricerca viene trovato nel campo di un documento, viene calcolato un punteggio per quel campo in base alla frequenza della parola in quel campo rispetto ad altri documenti. Se il termine viene utilizzato in più campi all'interno di un documento, per impostazione predefinita al punteggio globale del documento contribuisce solo il campo con punteggio più alto. È possibile specificare un valore `tieBreaker` per consentire che le corrispondenze nei campi con punteggio inferiore contribuiscano al punteggio del documento. In questo modo, se due documenti hanno lo stesso punteggio di campo massimo per un determinato termine, il documento con corrispondenze in più campi avrà un punteggio più alto. La formula per calcolare il punteggio con un tieBreaker è:

  ```
  (max field score) + (tieBreaker) * (sum of the scores for the rest of the matching fields)
  ```

  Ad esempio, la query seguente cerca il termine *dog* nei campi `title`, `description` e `review` e imposta `tieBreaker` su 0.1:

  ```
  q=dog&q.parser=dismax&q.options={fields:['title', 'description', 'review'], tieBreaker: 0.1}
  ```

  Se *dog* è presente in tutti e tre i campi di un documento e i punteggi per ogni campo sono title= 1, description= 3 e review = 1, il punteggio globale per il termine dog è:

  ```
  3 +  0.1 * (1+1) = 3.2
  ```

   Imposta `tieBreaker` su 0 per ignorare tutti i campi, ad eccezione di quello con punteggio più alto (max). Imposta su 1 per sommare i punteggi di tutti i campi (sum). Valori validi: da 0.0 a 1.0. Impostazione predefinita: 0.0. Valida per: `dismax`.
Tipo: oggetto JSON  
Impostazione predefinita: vedi le descrizioni delle singole opzioni.  
Obbligatorio: no

q.parser   
Specifica quali parser di query utilizzare per elaborare la richiesta: `simple`, `structured`, `lucene` e `dismax`. Se non `q.parser` è specificato, Amazon CloudSearch utilizza il parser di `simple` query.   
+ `simple`—esegue ricerche semplici su e campi. `text` `text-array` Per impostazione predefinita, il parser di query `simple` esegue la ricerca in tutti i campi `text` e `text-array` configurati staticamente. Puoi specificare i campi in cui desideri eseguire le ricerche con il parametro `q.options`. Se anteponi a un termine di ricerca il prefisso del segno più (\$1), per essere considerata una corrispondenza i documenti devono includere il termine (questa è l'impostazione predefinita, a meno che non si configuri l'operatore predefinito con il parametro `q.options`). È possibile utilizzare gli operatori `-` (NOT), `|` (OR) e `*` (carattere jolly) per escludere particolari termini, trovare i risultati che corrispondono a uno qualsiasi dei termini specificati oppure cercare un prefisso. Per cercare un periodo anziché singoli termini, racchiudi il periodo tra virgolette doppie. Per ulteriori informazioni, consulta [Ricerca nei tuoi dati con Amazon CloudSearch](searching.md). 
+ `structured`—esegue ricerche avanzate combinando più espressioni per definire i criteri di ricerca. È inoltre possibile eseguire ricerche all'interno di campi specifici, cercare valori e intervalli di valori e utilizzare opzioni avanzate come l'aumento di rilevanza dei termini, `matchall`, e `near`. Per ulteriori informazioni, consulta [Creazione di query composte](searching-compound-queries.md).
+ `lucene`—ricerca utilizzando la sintassi del parser di query di Apache Lucene. Per ulteriori informazioni, consultare l'argomento relativo alla [sintassi del parser di query Apache Lucene](https://cwiki.apache.org/confluence/display/solr/The+Standard+Query+Parser).
+ `dismax`—ricerca utilizzando il sottoinsieme semplificato della sintassi del parser di query Apache Lucene definita dal parser di query. DisMax [Per ulteriori informazioni, vedere Query Parser Syntax. DisMax ](https://cwiki.apache.org/confluence/display/solr/The+DisMax+Query+Parser)
Tipo: String  
Impostazione predefinita: `simple`  
Obbligatorio: no

return   
I valori dei campi e delle espressioni da includere nella risposta, specificati come elenco separato da virgole. Per impostazione predefinita, una risposta di ricerca comprende tutti i campi inclusi nei risultati (`return=_all_fields`). Per restituire solo il documento IDs per i documenti corrispondenti, specificare. `return=_no_fields` Per recuperare il punteggio di rilevanza calcolato per ogni documento, specifica `return=_score`. È possibile specificare più campi inclusi nei risultati come elenco separato da virgole. Ad esempio, `return=title,_score` restituisce solo il titolo e il punteggio di rilevanza di ogni documento corrispondente.  
▬Tipo: stringa  
Obbligatorio: no

size   
Il numero massimo di occorrenze di ricerca da restituire.   
Tipo: numero intero positivo  
Impostazione predefinita: 10  
Obbligatorio: no

sort  
Elenco separato da virgole di campi o espressioni personalizzate da utilizzare per ordinare i risultati della ricerca. È necessario specificare la direzione dell'ordinamento (`asc` o `desc`) per ciascun campo. Ad esempio, `sort=year desc,title asc`. È possibile specificare un massimo di 10 campi ed espressioni. Per usare un campo per ordinare i risultati, è necessario che il campo consenta l'ordinamento nella configurazione del dominio. I campi di tipo array non possono essere utilizzati per l'ordinamento. Se non viene specificato alcun parametro `sort`, i risultati sono elencati in base al punteggio di rilevanza in ordine decrescente: `sort=_score desc`. È possibile ordinarli anche in base all'ID documento (`sort=_id`) e alla versione (`sort=_version`).  
▬Tipo: stringa  
Obbligatorio: no

start   
L'offset della prima occorrenza di ricerca che si desidera restituire. In una richiesta è possibile specificare o il parametro `start` o il parametro `cursor`, in quanto si escludono a vicenda. Per ulteriori informazioni, consulta [Scorrere le pagine dei risultati](paginating-results.md).  
Tipo: numero intero positivo  
Impostazione predefinita: 0 (la prima occorrenza)  
Obbligatorio: no

#### Sintassi di ricerca strutturata
<a name="structured-search-syntax"></a>

Utilizza la sintassi di ricerca CloudSearch strutturata di Amazon per definire i criteri di ricerca quando usi il parser di `structured` query e per specificare i criteri di filtro con il `fq` parametro. 

Quando utilizzi gli operatori delle query strutturate, devi specificare il nome dell'operatore, le relative opzioni e i termini a cui viene applicato l'operatore, `(OPERATOR OPTIONS STRING|EXPRESSION)`. Qualsiasi opzione deve essere specificata prima della stringa o dell'espressione. Ad esempio, `(and (not field=genres 'Sci-Fi')(or (term field=title boost=2 'star')(term field=plot 'star')))`. 

**Importante**  
I caratteri speciali nella stringa di query devono essere codificati in formato URL. Ad esempio, devi codificare l'`=`operatore in una query strutturata come`%3D`:). `(term+field%3Dtitle+'star'` Amazon CloudSearch restituisce un `InvalidQueryString` errore se i caratteri speciali non sono codificati nell'URL. Per un riferimento completo delle codifiche nel formato URL, consultare il documento [HTML URL Encoding Reference](http://www.w3schools.com/tags/ref_urlencode.asp) di W3C.

Se non si specifica il campo in cui si desidera eseguire la ricerca quando si usa il parser di query strutturate, la ricerca viene eseguita in tutti i campi `text` e `text-array` configurati staticamente. Per impostazione predefinita, i campi dinamici e i campi `literal` *non* sono oggetto di ricerca. Puoi indicare i campi in cui desideri eseguire la ricerca per impostazione predefinita specificando il parametro `q.options`. 

Le parentesi controllano l'ordine di valutazione delle espressioni in una query composta. Se è racchiusa tra parentesi, un'espressione viene valutata per prima, quindi il valore risultante viene utilizzato nella valutazione della parte rimanente della query. Le espressioni possono contenere uno qualsiasi degli operatori di query strutturata. 

È inoltre possibile utilizzare il parser di query strutturate per cercare una semplice stringa di testo: è sufficiente racchiudere la stringa da cercare tra virgolette singole: `q='black swan'&q.parser="structured"`.

Per ulteriori informazioni sulla creazione di query composte con gli operatori di query strutturata, vedi [Creazione di query composte](searching-compound-queries.md).

FIELD  
Sintassi: `FIELD: 'STRING'|value`  
Cerca nel campo specificato una stringa, un valore numerico, una data o un intervallo di valori numerici o date.   
Le stringhe devono essere racchiuse tra virgolette singole. Ogni singola virgoletta o barra rovesciata nella stringa deve essere sostituita da una barra rovesciata. Per specificare un intervallo di valori, utilizza una virgola (,) per separare i limiti superiore e inferiore e inserisci l'intervallo tra parentesi tonde o parentesi graffe. Una parentesi quadra, [o], indica che il limite è incluso nell'intervallo, una parentesi graffa, \$1o\$1, esclude il limite. Puoi omettere il limite superiore o inferiore per specificare un intervallo aperto. Quando si omette un limite, è necessario utilizzare un tutore riccio.   
 [Le date e gli orari sono specificati in UTC (Coordinated Universal Time) secondo IETF:. RFC3339](http://tools.ietf.org/html/rfc3339) `yyyy-mm-ddTHH:mm:ss.SSSZ` In UTC, ad esempio, le 17:00 del 23 agosto 1970 sono:. `1970-08-23T17:00:00Z` Tieni presente che puoi anche specificare frazioni di secondo quando specifichi gli orari in UTC. Ad esempio, `1967-01-31T23:20:50.650Z.`   
Esempi:   

```
title:'star'
year:2000
year:[1998,2000]
year:{,2011]
release_date:['2013-01-01T00:00:00Z',}
```

and  
Sintassi: `(and boost=N EXPRESSION EXPRESSION ... EXPRESSIONn)`  
Include un documento solo se corrisponde a tutte le espressioni specificate. (Operatore `AND` booleano.) Le espressioni possono contenere uno qualsiasi degli operatori di query strutturata o una stringa di ricerca semplice. Le stringhe di ricerca devono essere racchiuse tra virgolette singole. Per trovare la corrispondenza con i documenti che contengono i termini specificati nei campi in cui viene eseguita la ricerca, è necessario specificare ogni termine come espressione separata: `(and 'star' 'wars')`. Se si specifica `(and 'star wars')`, *star* e *wars* devono essere presenti nello stesso campo per essere considerati una corrispondenza.   
 Il valore boost è un valore numerico positivo che aumenta l'importanza di questa parte della query di ricerca rispetto alle altre parti.   
Esempio:   

```
(and title:'star' actors:'Harrison Ford' year:{,2000])
```

matchall  
Sintassi: `matchall`   
Restituisce ogni documento del dominio. Per impostazione predefinita, restituisce i primi 10. Usa i parametri `size` e `start` per scorrere i risultati.

near  
Sintassi: `(near field=FIELD distance=N boost=N 'STRING') `  
Esegue la ricerca in un campo `text` o `text-array` della stringa a più termini specificata restituisce i documenti che contengono i termini a una distanza reciproca non superiore a quella specificata (A volte viene chiamata ricerca di frasi *sciatta*.) Se ometti l'`field`opzione, Amazon CloudSearch cerca tutti i `text-array` campi `text` e i campi configurati staticamente per impostazione predefinita. Per impostazione predefinita, i campi dinamici e i campi `literal` non sono oggetto di ricerca. Puoi specificare quali campi desideri cercare per impostazione predefinita specificando l'opzione. `q.options` `fields`   
Il valore della distanza deve essere un numero intero positivo. Ad esempio, per trovare tutti i documenti in cui il termine *teenage* è presente a non più di 10 parole di distanza da *vampire* nel campo `plot`, è necessario specificare il valore di distanza 10: `(near field=plot distance=10 'teenage vampire')`.   
 Il valore boost è un valore numerico positivo che aumenta l'importanza di questa parte della query di ricerca rispetto alle altre parti.   
Esempio:   

```
(near field=plot distance=10 'teenage vampire')
```

not   
Sintassi: `(not boost=N EXPRESSION)`  
Esclude un documento se corrisponde all'espressione specificata. (Operatore `NOT` booleano). L'espressione può contenere uno qualsiasi degli operatori di query strutturata o una stringa di ricerca semplice. Le stringhe di ricerca devono essere racchiuse tra virgolette singole.  
 Il valore boost è un valore numerico positivo che aumenta l'importanza di questa parte della query di ricerca rispetto alle altre parti.   
Esempio:   

```
(not (or actors:'Harrison Ford' year:{,2010]))
```

or   
Sintassi: `(or boost=N EXPRESSION1 EXPRESSION2 ... EXPRESSIONn)`  
Include un documento se corrisponde a una delle espressioni specificate. (Operatore `OR` booleano). Le espressioni possono contenere uno qualsiasi degli operatori di query strutturata o una stringa di ricerca semplice. Le stringhe di ricerca devono essere racchiuse tra virgolette singole.  
 Il valore boost è un valore numerico positivo che aumenta l'importanza di questa parte della query di ricerca rispetto alle altre parti.   
Esempio:   

```
(or actors:'Alec Guinness' actors:'Harrison Ford' actors:'James Earl Jones')
```

phrase   
Sintassi: `(phrase field=FIELD boost=N 'STRING')`  
Cerca in un `text-array` campo `text` o la frase specificata. Se ometti l'`field`opzione, Amazon CloudSearch cerca tutti i `text-array` campi `text` e i campi configurati staticamente per impostazione predefinita. Per impostazione predefinita, i campi dinamici e i campi `literal` non sono oggetto di ricerca. Puoi specificare quali campi desideri cercare per impostazione predefinita specificando l'opzione. `q.options` `fields`   
Utilizza l'operatore `phrase` per combinare una ricerca di periodo con altri criteri di ricerca in una query strutturata. Ad esempio `q=(and (term field=title 'star') (range field=year {,2000]))` restituisce tutti i documenti che contengono *star* nel campo del titolo e hanno valore minore o uguale a 2000 per l'anno.   
 Il valore boost è un valore numerico positivo che aumenta l'importanza di questa parte della query di ricerca rispetto alle altre parti.   
Esempio:   

```
(phrase field=plot 'teenage girl')
```

prefix   
Sintassi: `(prefix field=FIELD boost=N 'STRING')`  
Cerca un`text`, `text-array``literal`, o `literal-array` campo per il prefisso specificato seguito da zero o più caratteri. Se ometti l'`field`opzione, Amazon CloudSearch cerca tutti i `text-array` campi `text` e i campi configurati staticamente per impostazione predefinita. Per impostazione predefinita, i campi dinamici e i campi `literal` non sono oggetto di ricerca. Puoi specificare quali campi desideri cercare per impostazione predefinita specificando l'opzione. `q.options` `fields`   
Utilizza l'operatore `prefix` per combinare una ricerca di prefisso con altri criteri di ricerca in una query strutturata. Ad esempio, `q=(and (prefix field=title 'sta') (range field=year {,2000]))` restituisce tutti i documenti che contengono il prefisso *sta* nel campo del titolo e hanno valore minore o uguale a 2000 per l'anno.   
 Il valore boost è un valore numerico positivo che aumenta l'importanza di questa parte della query di ricerca rispetto alle altre parti.   
Per implementare i suggerimenti di ricerca, è necessario configurare ed eseguire query su un suggeritore anziché eseguire ricerche di prefissi. Per ulteriori informazioni, consulta [Richieste di suggerimento](#suggest-request).
Esempio:   

```
(prefix field=title 'star')
```

range  
Sintassi: `(range field=FIELD boost=N RANGE)`  
Esegue la ricerca di un campo numerico (double, double-array, int, int-array) o di data (date, date-array) per i valori nell'intervallo specificato. Restituisce i documenti che presentano almeno un valore nel campo all'interno dell'intervallo specificato. È necessario specificare l'opzione `field`.  
Utilizza l'operatore `range` per combinare una ricerca di intervallo con altri criteri di ricerca in una query strutturata. Ad esempio `q=(and (term field=title 'star') (range field=year {,2000]))` restituisce tutti i documenti che contengono *star* nel campo del titolo e hanno valore minore o uguale a 2000 per l'anno.   
 Per specificare un intervallo di valori, utilizza una virgola (,) per separare i limiti superiore e inferiore e inserisci l'intervallo tra parentesi tonde o parentesi graffe. Una parentesi quadra, [o], indica che il limite è incluso nell'intervallo, una parentesi graffa, \$1or\$1, esclude il limite. Puoi omettere il limite superiore o inferiore per specificare un intervallo aperto. Quando si omette un limite, è necessario utilizzare un tutore riccio.   
 [Le date e gli orari sono specificati in UTC (Coordinated Universal Time) secondo IETF:. RFC3339](http://tools.ietf.org/html/rfc3339) `yyyy-mm-ddTHH:mm:ss.SSSZ` In UTC, ad esempio, le 17:00 del 23 agosto 1970 sono:. `1970-08-23T17:00:00Z` Tieni presente che puoi anche specificare frazioni di secondo quando specifichi gli orari in UTC. Ad esempio, `1967-01-31T23:20:50.650Z.`   
 Il valore boost è un valore numerico positivo che aumenta l'importanza di questa parte della query di ricerca rispetto alle altre parti.   
Esempi:   

```
(range field=year [1990,2000])
(range field=year {,2000])
(range field=year [1990,})
```

term  
Sintassi: `(term field=FIELD boost=N 'STRING'|VALUE) `  
Cerca una stringa, un valore numerico o una data nel campo specificato. L'`field`opzione deve essere specificata durante la ricerca di un valore. Se ometti l'`field`opzione, Amazon CloudSearch cerca tutti i `text-array` campi `text` e i campi configurati staticamente per impostazione predefinita. Per impostazione predefinita, i campi dinamici e i campi `literal` non sono oggetto di ricerca. Puoi specificare quali campi desideri cercare per impostazione predefinita specificando l'opzione. `q.options` `fields`   
Utilizza l'operatore `term` per combinare una ricerca di termine con altri criteri di ricerca in una query strutturata. Ad esempio, `q=(and (term field=title 'star') (range field=year {,2000]))` restituisce tutti i documenti che contengono *star* nel campo del titolo e hanno valore minore o uguale a 2000 per l'anno.   
Le stringhe e le date devono essere racchiuse tra virgolette singole. Le virgolette singole o le barre rovesciate n una stringa devono essere precedute dal carattere di escape barra rovesciata.   
 Le date e gli orari sono specificati in UTC (Coordinated Universal Time) secondo [ RFC3339IETF](http://tools.ietf.org/html/rfc3339):. `yyyy-mm-ddTHH:mm:ss.SSSZ` In UTC, ad esempio, le 17:00 del 23 agosto 1970 sono:. `1970-08-23T17:00:00Z` Tieni presente che puoi anche specificare frazioni di secondo quando specifichi gli orari in UTC. Ad esempio, `1967-01-31T23:20:50.650Z.`   
 Il valore boost è un valore numerico positivo che aumenta l'importanza di questa parte della query di ricerca rispetto alle altre parti.   
Esempi:   

```
(term field=title 'star')
(term field=year 2000)
```

#### Sintassi di ricerca semplice
<a name="simple-search-syntax"></a>

Utilizza la sintassi di ricerca CloudSearch semplice di Amazon per definire i criteri di ricerca quando usi il parser di `simple` query. Il parser di query semplice viene utilizzato per impostazione predefinita se non si specifica il parametro `q.parser`. 

Questo tipo di parser di query consente di cercare singoli termini o periodi. Per impostazione predefinita, la ricerca viene eseguita in tutti i campi `text` e `text-array` configurati staticamente. Per impostazione predefinita, i campi dinamici e i campi `literal` *non* sono oggetto di ricerca. È possibile utilizzare il parametro `q.options` per specificare i campi in cui si desidera eseguire la ricerca, modificare l'operatore predefinito utilizzato per combinare singoli termini nella stringa di ricerca oppure disabilitare uno qualsiasi degli operatori di parser semplici (`and`, `escape`, `fuzzy`, `near`, `not`, `or`, `phrase`, `precedence`, `prefix`, `whitespace`).

Per ulteriori informazioni su come utilizzare i parser di query semplice, vedi [Ricerca di testo in Amazon CloudSearch](searching-text.md).

\$1 (and)  
Sintassi: `+TERM`  
Richiede il termine specificato. Per corrispondere, i documenti devono contenere il termine specificato.  
Esempio: \$1star

\$1 (escape)  
Sintassi: `\CHAR`  
Aggiunge caratteri di escape ai caratteri speciali che si desidera cercare. Perché facciano parte della query, ai seguenti caratteri è necessario aggiungere caratteri di escape: \$1 - & \$1 \$1 ( ) \$1 \$1 [ ] ^ " \$1 \$1 ? : \$1 /.  
Ad esempio: `M\*A\*S\*H`

\$1 (fuzzy)  
Sintassi: `TERM~N`  
Esegue una ricerca fuzzy. Aggiungere l'operatore \$1 e un valore a un termine per indicare in che misura i termini possono differire ed essere considerati comunque una corrispondenza.   
Ad esempio: `stor~1`

\$1 (near)  
Sintassi: `"PHRASE"~N`  
Esegue una ricerca di frasi simili. Aggiungere l'operatore \$1 e un valore a un periodo per indicare quanto possono essere distanti tra loro i termini ed essere considerati comunque una corrispondenza per il periodo.   
Ad esempio: `"star wars"~4`

- (not)  
Sintassi: `-TERM`  
Vieta il termine specificato. Per corrispondere, i documenti non devono contenere il termine specificato.   
Esempio: star -wars

\$1 (or)  
Sintassi: `|TERM`  
Rende opzionale il termine specificato.   
Esempio: star \$1wars

"..." (phrase)  
Sintassi: `"PHRASE"`  
Esegue la ricerca dell'intero periodo. Può essere combinata con l'operatore `~` per eseguire una ricerca di frasi simili.   
Esempio: "star wars"

(...) (precedence)  
Sintassi: `(...)`  
Controlla l'ordine in cui vengono valutati i vincoli di query. Nella valutazione ha la precedenza il contenuto delle parentesi più interne.   
Ad esempio: `+(war|trek)+star`

\$1 (prefix)  
Sintassi: `CHARS*`  
Restituisce i documenti che contengono i termini che includono il prefisso selezionato.   
Ad esempio: `sta*`

### Risposta della ricerca
<a name="search-response"></a>

Quando una richiesta riesce, il corpo della risposta contiene i risultati della ricerca. Per impostazione predefinita, i risultati della ricerca vengono restituiti in formato JSON. Se il parametro `format` è impostato su `xml`, i risultati della ricerca vengono restituiti in formato XML. 

A meno che non si specifichi in modo esplicito il parametro `return`, per ogni documento corrispondente (occorrenza) sono inclusi l'ID documento e tutti i campi restituibili. La risposta mostra anche il numero totale di occorrenze trovate (`found`) e l'indice del primo documento elencato (`start`). Per impostazione predefinita, la risposta contiene le prime 10 occorrenze. È possibile specificare il parametro `size` nella richiesta per controllare la quantità di occorrenze incluse in ogni risposta. Per scorrere le occorrenze, è possibile utilizzare il parametro `start` o `cursor`. Per ulteriori informazioni, consulta [Scorrere le pagine dei risultati](paginating-results.md).

Il seguente esempio mostra una tipica risposta in formato JSON:

```
{
    "status": {
        "rid": "rtKz7rkoeAojlvk=",
        "time-ms": 10
    },
    "hits": {
        "found": 3,
        "start": 0,
        "hit": [
            {
                "id": "tt1142977",
                "fields": {
                    "rating": "6.9",
                    "genres": [
                        "Animation",
                        "Comedy",
                        "Family",
                        "Horror",
                        "Sci-Fi"
                    ],
                    "plot": "Young Victor conducts a science experiment to  
                             bring his beloved dog Sparky back to life, only
                              to face unintended, sometimes monstrous, 
                              consequences.",
                    "release_date": "2012-09-20T00:00:00Z",
                    "title": "Frankenweenie",
                    "rank": "1462",
                    "running_time_secs": "5220",
                    "directors": [
                        "Tim Burton"
                    ],
                    "image_url": "http://ia.media-imdb.com/images/M/MV5BMjIx
                                  ODY3MjEwNV5BMl5BanBnXkFtZTcwOTMzNjc4Nw@@._
                                  V1_SX400_.jpg",
                    "year": "2012",
                    "actors": [
                        "Winona Ryder",
                        "Catherine O'Hara",
                        "Martin Short"
                    ]
                }
            },
			.
			.
			.
        ]			
    }
}
```

L'esempio seguente mostra la risposta XML equivalente.

```
<results>
    <status rid="itzL7rkoeQojlvk=" time-ms="34"/>
    <hits found="3" start="0">
        <hit id="tt1142977">
            <field name="rating">6.9</field>
            <field name="genres">Animation</field>
            <field name="genres">Comedy</field>
            <field name="genres">Family</field>
            <field name="genres">Horror</field>
            <field name="genres">Sci-Fi</field>
            <field name="plot">Young Victor conducts a science experiment to
                               bring his beloved dog Sparky back to life, only
                               to face unintended, sometimes monstrous, 
                               consequences.
            </field>
            <field name="release_date">2012-09-20T00:00:00Z</field>
            <field name="title">Frankenweenie</field>
            <field name="rank">1462</field>
            <field name="running_time_secs">5220</field>
            <field name="directors">Tim Burton</field>
            <field name="image_url">http://ia.media-imdb.com/images/M/MV5BMjI
                                    xODY3MjEwNV5BMl5BanBnXkFtZTcwOTMzNjc4Nw@@.
                                    _V1_SX400_.jpg
            </field>
            <field name="year">2012</field>
            <field name="actors">Winona Ryder</field>
            <field name="actors">Catherine O'Hara</field>
            <field name="actors">Martin Short</field>
        </hit>
        .
        .
        .
    </hits>
</results>
```

 L'impostazione del formato della risposta interessa solo le risposte alle richieste riuscite. Il formato di una risposta di errore dipende dall'origine dell'errore. Gli errori restituiti dal servizio di ricerca vengono sempre restituiti in JSON. Gli errori 5xx dovuti a timeout del server e ad altri problemi di routing delle richieste vengono restituiti in XML. Quando una richiesta restituisce un codice di errore, il corpo della risposta contiene informazioni sull'errore che si è verificato. Se si verifica un errore durante l'analisi e la convalida del corpo della richiesta, il codice di errore viene impostato su 400 e il corpo della risposta include un elenco degli errori e del luogo in cui si sono verificati. 

#### Intestazioni delle risposte di ricerca
<a name="search-response-headers"></a>

Content-Type  
Tipo MIME standard che descrive il formato dei dati oggetto. Per ulteriori informazioni, consultare la [sezione 14 del protocollo RFC 2616 di W3C](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17).  
Valori validi: o application/json application/xml   
Predefinito: application/json 

Content-Length  
La lunghezza in byte del corpo della risposta.

#### Proprietà della risposta della ricerca (JSON)
<a name="search-response-elements-json"></a>

status  
Contiene l'id di risorsa (rid) e il tempo impiegato per elaborare la richiesta (time-ms).    
rid  
L'ID di risorsa crittografato.  
time-ms  
Il tempo impiegato per elaborare la richiesta di ricerca in millisecondi.

hits  
Contiene il numero di documenti corrispondenti (`found`), l'indice del primo documento incluso nella risposta (`start`) e un array (`hit`) che elenca il documento IDs e i dati per ogni risultato.     
found  
Il numero totale di risultati che corrispondono alla richiesta di ricerca dopo che Amazon CloudSearch ha terminato l'elaborazione della richiesta.   
start  
L'indice della prima occorrenza restituita in questa risposta.   
hit  
Un array che elenca il documento IDs e i dati per ogni risultato.     
id  
L'identificatore univoco per un documento.   
fields  
Elenco di campi restituiti.   
facets  
Contiene i conteggi dei facet e le relative informazioni.   
FACETFIELD  
Campo per il quale sono stati calcolati i facet.   
buckets  
Serie di valori e conteggi di facet.  
value  
Il valore del facet conteggiato.  
count  
Il numero di occorrenze che contengono il valore del facet in `FACETFIELD`. 

#### Elementi della risposta di ricerca (XML)
<a name="search-response-elements-xml"></a>

results  
Contiene i risultati di ricerca. Qualsiasi errore che si verifichi durante l'elaborazione della richiesta viene restituito come messaggio nell'elemento delle informazioni.    
status  
Contiene l'id di risorsa (`rid`) e il tempo impiegato per elaborare la richiesta (`time-ms`).  
hits  
Contiene le statistiche delle occorrenze e una raccolta di elementi occorrenza. L'attributo found è il numero totale di risultati che corrispondono alla richiesta di ricerca dopo che Amazon CloudSearch ha terminato l'elaborazione dei risultati. Gli elementi occorrenza vengono ordinati in base al relativo punteggio di rilevanza o all'opzione `sort` specificata nella richiesta di ricerca.     
hit  
Documento che corrisponde alla richiesta di ricerca. L'attributo id è l'id univoco del documento. Contiene un elemento `d` (dati) per ciascun campo restituito.    
field  
Un campo restituito da un'occorrenza. Gli elementi occorrenza `d` (dati) per ciascun campo restituito.   
facets  
Contiene un elemento facet per ogni facet richiesto nella richiesta di ricerca.    
facet  
Contiene un elemento bucket per ciascun valore di un campo per il quale è stato calcolato un conteggio di facet. È possibile utilizzare l'opzione di dimensione `facet.FIELD` per specificare il numero di vincoli da restituire. Per impostazione predefinita, i conteggi dei facet vengono restituiti per i primi 10 vincoli. L'opzione dei bucket `facet.FIELD` consente di specificare esplicitamente i valori da contare.     
bucket  
Valore di un campo facet e il numero di occorrenze (conteggio) di tale valore all'interno delle occorrenze di ricerca.

## Invio di richieste di suggerimenti in Amazon CloudSearch
<a name="submitting-suggest-requests"></a>

È possibile inviare le richieste tramite HTTP GET all'endpoint di ricerca del tuo dominio in `2013-01-01/suggest`. Per informazioni su come controllare l'accesso al servizio di suggerimenti, vedi [Configurazione di Access per Amazon CloudSearch](configuring-access.md).

In tutte le richieste di suggerimento è necessario specificare la versione API e indicare che deve corrispondere alla versione API specificata al momento della creazione del dominio.

Ad esempio, la seguente richiesta ottiene suggerimenti dal dominio `search-movies-rr2f34ofg56xneuemujamut52i.us-east-1.cloudsearch.amazonaws.com` per la stringa di query `oce` utilizzando il suggeritore denominato `title`. 

```
http://search-imdb-hd6ebyouhw2lczkueyuqksnuzu.us-west-2.cloudsearch.amazonaws.com/2013-01-01/suggest -d"q=oce&suggester=suggest_title"
```

Puoi utilizzare qualsiasi metodo desideri per inviare richieste GET all'endpoint di ricerca del tuo dominio: puoi inserire l'URL della richiesta direttamente in un browser Web, utilizzare cURL per inviare la richiesta o generare una chiamata HTTP utilizzando la tua libreria HTTP preferita. Puoi anche utilizzare Search Tester nella CloudSearch console Amazon per ricevere suggerimenti. Per ulteriori informazioni, consulta [Ricerca con il test di ricerca](getting-started-search.md#searching-console).

**Importante**  
Gli endpoint di ricerca e il documento di un dominio rimangono invariati per tutta la durata del dominio. Dovresti memorizzare gli endpoint nella cache invece di recuperarli prima di ciascuna richiesta di ricerca o caricamento. È probabile che interrogare il servizio di CloudSearch configurazione Amazon chiamando `aws cloudsearch describe-domains` o `DescribeDomains` prima di ogni richiesta comporti una limitazione delle richieste. 

Per impostazione predefinita, Amazon CloudSearch restituisce la risposta in JSON. Puoi ottenere i risultati in formato XML specificando il parametro `format`, `format=xml`. L'impostazione del formato della risposta interessa solo le risposte alle richieste riuscite. Il formato di una risposta di errore dipende dall'origine dell'errore. Gli errori restituiti dal servizio di ricerca vengono sempre restituiti in JSON. Gli errori 5xx dovuti a timeout del server e ad altri problemi di routing delle richieste vengono restituiti in XML.

## Suggerimento
<a name="suggest"></a>

### Richieste di suggerimento
<a name="suggest-request"></a>

#### Suggerisci la sintassi in Amazon CloudSearch
<a name="suggest-syntax"></a>

```
GET /2013-01-01/suggest
```

#### Suggerisci intestazioni di richiesta in Amazon CloudSearch
<a name="suggest-request-headers"></a>

HOST  
L'endpoint delle richieste di ricerca per il dominio sottoposto a query. Puoi utilizzare [DescribeDomains](API_DescribeDomains.md) per recuperare l'endpoint delle richieste di ricerca del dominio.   
Obbligatorio: sì

#### Suggerisci parametri di richiesta in Amazon CloudSearch
<a name="suggest-request-parameters"></a>

q  
La stringa per la quale ottenere i suggerimenti.  
Tipo: stringa  
Obbligatorio: sì

suggester  
Il nome del suggeritore da utilizzare per trovare le corrispondenze suggerite.  
Tipo: stringa  
Obbligatorio: sì

size   
Il numero massimo di suggerimenti da restituire.   
Tipo: numero intero positivo  
Impostazione predefinita: 10  
Obbligatorio: no

format  
Specifica il tipo di contenuti della risposta.   
Tipo: String  
Valori validi: json\$1xml  
Impostazione predefinita: json  
Obbligatorio: no

### Risposta del suggerimento
<a name="suggest-response"></a>

Quando una richiesta riesce, il corpo della risposta contiene i suggerimenti. Per impostazione predefinita, i suggerimenti vengono restituiti in formato JSON. Puoi ottenere i risultati in formato XML impostando il parametro `format` su `xml`.

 L'impostazione del formato della risposta interessa solo le risposte alle richieste riuscite. Il formato di una risposta di errore dipende dall'origine dell'errore. Gli errori restituiti dal servizio di ricerca vengono sempre restituiti in JSON. Gli errori 5xx dovuti a timeout del server e ad altri problemi di routing delle richieste vengono restituiti in XML. Quando una richiesta restituisce un codice di errore, il corpo della risposta contiene informazioni sull'errore che si è verificato. Se si verifica un errore durante l'analisi e la convalida del corpo della richiesta, il codice di errore viene impostato su 400 e il corpo della risposta include un elenco degli errori e del luogo in cui si sono verificati. 

L'esempio seguente mostra una risposta in formato JSON a una richiesta di suggerimenti.

```
{
   "status": {
      "rid": "qOSM5s0oCwr8pVk=",
      "time-ms": 2
   },
   "suggest": {
      "query": "oce",
      "found": 3,
      "suggestions": [
         {
          "suggestion": "Ocean's Eleven",
           "score": 0,
           "id": "tt0054135"
         },
         {
          "suggestion": "Ocean's Thirteen",
          "score": 0,
          "id": "tt0496806"
         },
         {
          "suggestion": "Ocean's Twelve",
          "score": 0,
          "id": "tt0349903"
         }
      ]
   }
}
```

L'esempio seguente mostra la risposta XML equivalente:

```
<results>
   <status rid="/pSz580oDQr8pVk=" time-ms="2"/>
   <suggest query="oce" found="3">
      <suggestions>
         <item suggestion="Ocean's Eleven" score="0" id="tt0054135"/>
         <item suggestion="Ocean's Thirteen" score="0" id="tt0496806"/>
         <item suggestion="Ocean's Twelve" score="0" id="tt0349903"/>
      </suggestions>
   </suggest>
</results>
```

## Errori dei servizi di ricerca
<a name="search-service-errors"></a>

Una richiesta di ricerca o suggerimenti può restituire tre tipi di codici di stato:
+ I codici di stato 5xx indicano che si è verificato un errore interno del server. È consigliabile intercettare e riprovare tutti i codici di errore 5xx in quanto generalmente rappresentano condizioni di errore transitorie. Per ulteriori informazioni, consulta [Gestione degli errori](error-handling.md). 
+ I codici di stato 4xx indicano che la richiesta non è stata formulata correttamente. Correggi gli errori riportati prima di inviare nuovamente la tua richiesta.
+ I codici di stato 2xx indicano che la richiesta è riuscita.

Il formato di una risposta di errore dipende dall'origine dell'errore. Gli errori restituiti dal servizio di ricerca vengono sempre restituiti in JSON. Gli errori 5xx dovuti a timeout del server e ad altri problemi di routing delle richieste vengono restituiti in XML. 

Gli errori restituiti dal servizio di ricerca contengono le informazioni seguenti:

error  
Contiene un messaggio di errore restituito dal servizio di ricerca. Per ogni errore sono incluse le proprietà `code` e `msg`.

code  
Il codice di errore.

msg  
Una descrizione dell'errore restituita dal servizio di ricerca.