

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

# FT.SEARCH
<a name="vector-search-commands-ft.search"></a>

Utilizza l'espressione di interrogazione fornita per individuare le chiavi all'interno di un indice. Una volta individuato, è possibile restituire il and/or contenuto del conteggio dei campi indicizzati all'interno di tali chiavi. Per ulteriori informazioni, vedere Espressione di interrogazione di [ricerca vettoriale](https://docs.aws.amazon.com/memorydb/latest/devguide/vector-search-overview.html#vector-search-query-expression).

Per creare dati da utilizzare in questi esempi, vedete il comando [FT.CREATE](https://docs.aws.amazon.com/memorydb/latest/devguide/vector-search-commands-ft.create.html).

**Sintassi**

```
FT.SEARCH <index-name> <query>
[RETURN <token_count> (<field-identifier> [AS <alias>])+]
[TIMEOUT timeout] 
[PARAMS <count> <name> <value> [<name> <value>]]
[LIMIT <offset> <count>]
[COUNT]
```
+ RETURN: Questa clausola identifica quali campi di una chiave vengono restituiti. La clausola AS opzionale su ogni campo sostituisce il nome del campo nel risultato. È possibile specificare solo i campi dichiarati per questo indice.
+ LIMIT: <offset><count>: Questa clausola fornisce la funzionalità di impaginazione in quanto vengono restituite solo le chiavi che soddisfano i valori di offset e count. Se questa clausola viene omessa, il valore predefinito è «LIMIT 0 10", ovvero verranno restituite solo un massimo di 10 chiavi. 
+ PARAMETRI: due volte il numero di coppie chiave-valore. È possibile fare riferimento alle key/value coppie di parametri dall'interno dell'espressione di query. Per ulteriori informazioni, vedete Espressione di interrogazione di [ricerca vettoriale](https://docs.aws.amazon.com/memorydb/latest/devguide/vector-search-overview.html#vector-search-query-expression).
+ COUNT: questa clausola elimina la restituzione del contenuto delle chiavi, viene restituito solo il numero di chiavi. Questo è un alias per «LIMIT 0 0".

**Valori restituiti**

Restituisce una matrice o una risposta di errore.
+ Se l'operazione viene completata correttamente, restituisce un array. Il primo elemento è il numero totale di chiavi corrispondenti alla query. Gli elementi rimanenti sono coppie di nomi di chiavi ed elenchi di campi. L'elenco dei campi è un altro array che comprende coppie di nomi di campo e valori. 
+ Se l'indice è in corso di riempimento, il comando restituisce immediatamente una risposta di errore.
+ Se viene raggiunto il timeout, il comando restituisce una risposta di errore.

**Esempio: esegui alcune ricerche**

**Nota**  
L'esempio seguente utilizza argomenti nativi di [valkey-cli](https://valkey.io/topics/cli/), come la dequotazione e la rimozione dell'escape dei dati, prima di inviarli a Valkey o Redis OSS. Per utilizzare altri client in linguaggi di programmazione (Python, Ruby, C\$1, ecc.), segui le regole di gestione di tali ambienti per la gestione di stringhe e dati binari. [Per ulteriori informazioni sui client supportati, consulta Strumenti su cui costruire AWS](https://aws.amazon.com/developer/tools/)

**Una ricerca hash**

```
FT.SEARCH hash_idx1 "*=>[KNN 2 @VEC $query_vec]" PARAMS 2 query_vec "\x00\x00\x00\x00\x00\x00\x00\x00" DIALECT 2
1) (integer) 2
2) "hash:0"
3) 1) "__VEC_score"
   2) "0"
   3) "vec"
   4) "\x00\x00\x00\x00\x00\x00\x00\x00"
4) "hash:1"
5) 1) "__VEC_score"
   2) "1"
   3) "vec"
   4) "\x00\x00\x00\x00\x00\x00\x80\xbf"
```

Ciò produce due risultati, ordinati in base al punteggio, che è la distanza dal vettore di query (immessa come esadecimale).

**Ricerche JSON**

```
FT.SEARCH json_idx1 "*=>[KNN 2 @VEC $query_vec]" PARAMS 2 query_vec "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" DIALECT 2
1) (integer) 2
2) "json:2"
3) 1) "__VEC_score"
   2) "11.11"
   3) "$"
   4) "[{\"vec\":[1.1, 1.2, 1.3, 1.4, 1.5, 1.6]}]"
4) "json:0"
5) 1) "__VEC_score"
   2) "91"
   3) "$"
   4) "[{\"vec\":[1.0, 2.0, 3.0, 4.0, 5.0, 6.0]}]"
```

Ciò produce i due risultati più vicini, ordinati in base al punteggio, e nota che i valori vettoriali JSON vengono convertiti in float e il vettore di query è ancora costituito da dati vettoriali. Nota anche che, poiché il `KNN` parametro è 2, ci sono solo due risultati. Un valore maggiore restituirà più risultati:

```
FT.SEARCH json_idx1 "*=>[KNN 100 @VEC $query_vec]" PARAMS 2 query_vec "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" DIALECT 2
1) (integer) 3
2) "json:2"
3) 1) "__VEC_score"
   2) "11.11"
   3) "$"
   4) "[{\"vec\":[1.1, 1.2, 1.3, 1.4, 1.5, 1.6]}]"
4) "json:0"
5) 1) "__VEC_score"
   2) "91"
   3) "$"
   4) "[{\"vec\":[1.0, 2.0, 3.0, 4.0, 5.0, 6.0]}]"
6) "json:1"
7) 1) "__VEC_score"
   2) "9100"
   3) "$"
   4) "[{\"vec\":[10.0, 20.0, 30.0, 40.0, 50.0, 60.0]}]"
```