

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à.

# Configurazione delle espressioni in Amazon CloudSearch
<a name="configuring-expressions"></a>

È possibile definire espressioni numeriche e utilizzarle per ordinare i risultati di ricerca. Le espressioni possono inoltre essere restituite nei risultati di ricerca. È possibile aggiungere espressioni nella configurazione di dominio o definire espressioni all'interno delle richieste di ricerca. 

**Topics**
+ [Scrittura di espressioni per Amazon CloudSearch](#writing-expressions)
+ [query time expressions](defining-expressions-in-requests.md)
+ [Configurazione di espressioni riutilizzabili per un dominio di ricerca in Amazon CloudSearch](configuring-reusable-expressions.md)
+ [Confronto delle espressioni in Amazon CloudSearch](comparing-expressions.md)

## Scrittura di espressioni per Amazon CloudSearch
<a name="writing-expressions"></a>

 CloudSearch Le espressioni Amazon possono contenere:
+ Campi numerici a valore singolo abilitati per l'ordinamento (`int`, `double`, `date`). È necessario specificare un campo specifico, i caratteri jolly non sono supportati.
+ Altre espressioni
+ La variabile `_score`, che fa riferimento al punteggio di rilevanza di un documento
+ La variabile `_time`, che fa riferimento all'epoca corrente
+ La variabile `_rand`, che restituisce un valore generato in modo casuale
+ Valori letterali ottali, intero, in virgola mobile e esadecimali
+ Operatori aritmetici: `+ - * / %`
+ Operatori bit per bit:` | & ^ ~ << >> >>>`
+ Operatori booleani (tra cui l'operatore ternario):` && || ! ?: `
+ Operatori di confronto:` < <= == >= > `
+ Funzioni matematiche: `abs ceil exp floor ln log10 logn max min pow sqrt `
+ Funzioni trigonometriche: `acos acosh asin asinh atan atan2 atanh cos cosh sin sinh tanh tan`
+ La funzione di distanza `haversin`

[ JavaScript Le regole relative all'ordine di precedenza](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence#Table) si applicano agli operatori. È possibile ignorare la precedenza degli operatori utilizzando le parentesi.

La valutazione rapida viene utilizzata per valutare le espressioni logiche: se il valore dell'espressione può essere determinato dopo aver valutato il primo argomento, il secondo argomento non viene valutato. Ad esempio, nell'espressione `a || b`, `b` viene valutato solo se `a` non è true.

Le espressioni restituiscono sempre un valore intero compreso tra 0 e il valore intero con firma da 64 bit più elevato (2 ^ 63 - 1). I risultati intermedi vengono calcolati come valori a virgola mobile a doppia precisione e il valore restituito viene arrotondato al numero intero più prossimo. Se l'espressione non è valida o restituisce un valore negativo, restituisce 0. Se l'espressione restituisce un valore superiore del numero più elevato, restituisce il valore massimo. 

I nomi delle espressioni devono iniziare con una lettera e avere una lunghezza compresa tra 3 e 64 caratteri. I caratteri consentiti sono: a-z (minuscole), 0-9 e \_ (carattere di sottolineatura). Il nome *score* è riservato e non può essere utilizzato come nome di espressione.

Se ad esempio definisci un campo `int` denominato *popularity* per il tuo dominio, potresti utilizzare tale campo in combinazione con la rilevanza predefinita `_score` per creare un'espressione personalizzata. 

```
(0.3*popularity)+(0.7*_score)
```

Questo semplice esempio presuppone che la classificazione della popolarità e i valori \_score di rilevanza si trovino quasi nello stesso intervallo. Per ottimizzare le espressioni per la classificazione dei risultati, è necessario eseguire alcune operazioni di testing per stabilire che rilevanza assegnare ai componenti delle espressioni per ottenere i risultati desiderati. 

### Utilizzo dei campi data in Amazon CloudSearch Expressions
<a name="using-dates-in-expressions"></a>

Il valore di un campo `date` viene memorizzato come epoca con risoluzione in millisecondi. In questo modo è possibile utilizzare operatori di confronto e matematici per costruire le espressioni utilizzando le date archiviate nei documenti e l'epoca corrente (`_time`). Ad esempio, utilizzando la seguente espressione per ordinare i risultati della ricerca dal dominio movies, i film con data di rilascio recenti vengono spostati verso l'alto nell'elenco. 

```
_score/(_time - release_date)
```