

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

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

 Crea un índice e inicia la reposición de ese índice. Para obtener más información, consulte la [descripción general de la búsqueda vectorial](https://docs.aws.amazon.com/memorydb/latest/devguide/vector-search-overview.html) para obtener más detalles sobre la construcción del índice.

**Sintaxis**

```
FT.CREATE <index-name>
ON HASH | JSON
[PREFIX <count> <prefix1> [<prefix2>...]]
SCHEMA 
(<field-identifier> [AS <alias>] 
  NUMERIC 
| TAG [SEPARATOR <sep>] [CASESENSITIVE] 
| TEXT
| VECTOR [HNSW|FLAT] <attr_count> [<attribute_name> <attribute_value>])

)+
```

**Esquema**
+ Identificador del campo:
  + En Claves hash, el identificador de campo es Un nombre de campo.
  + En Claves JSON, el identificador de campo es Una ruta JSON.

  Para obtener más información, consulte [El campo de índice escribe](vector-search-overview.md#vector-search-index-field-types).
+ Tipos de campo:
  + ETIQUETA: Para obtener más información, consulte [Etiquetas](https://redis.io/docs/interact/search-and-query/advanced-concepts/tags/).
  + NUMÉRICO: el campo contiene un número.
  + TEXTO: El campo contiene cualquier bloque de datos.
  + VECTOR: campo vectorial que admite la búsqueda vectorial.
    + Algoritmo: puede ser HNSW (mundo pequeño navegable jerárquicamente) o FLAT (fuerza bruta). 
    + `attr_count`: cantidad de atributos que se transferirán como configuración del algoritmo, que incluye tanto los nombres como los valores. 
    + `{attribute_name} {attribute_value}`— key/value pares específicos del algoritmo que definen la configuración del índice. 

      Para el algoritmo FLAT, los atributos son:

      Obligatorio
      + DIM: la cantidad de dimensiones del vector.
      + DISTANCE\$1METRIC: puede ser uno de los siguientes: [L2 \$1 IP \$1 COSINE].
      + TYPE: tipo de vector. El único tipo admitido es `FLOAT32`.

      Opcional:
      + INITIAL\$1CAP: capacidad vectorial inicial del índice que afecta al tamaño de asignación de memoria del índice.

      Para el algoritmo HNSW, los atributos son:

      Obligatorio
      + TYPE: tipo de vector. El único tipo admitido es `FLOAT32`.
      + DIM: dimensión vectorial, especificada como un entero positivo. Máximo: 32768
      + DISTANCE\$1METRIC: puede ser uno de los siguientes: [L2 \$1 IP \$1 COSINE].

      Opcional:
      + INITIAL\$1CAP: capacidad vectorial inicial del índice que afecta al tamaño de asignación de memoria del índice. El valor predeterminado es 1024.
      + M: cantidad máxima de bordes salientes permitidos para cada nodo del gráfico en cada capa. En la capa cero, el número máximo de bordes salientes será de 2 millones. El valor predeterminado es 16 y el máximo es 512.
      + EF\$1CONSTRUCTION: controla la cantidad de vectores examinados durante la construcción del índice. Los valores más altos de este parámetro mejorarán la tasa de recuperación a costa de prolongar los tiempos de creación del índice. El valor predeterminado es 200. El valor máximo es 4096.
      + EF\$1RUNTIME: controla la cantidad de vectores examinados durante las operaciones de consulta. Los valores más altos de este parámetro darán una tasa de recuperación mejorada a costa de tiempos de consulta prolongados. El valor de este parámetro se puede anular según cada consulta. El valor predeterminado es 10. El valor máximo es 4096.

**Devolución**

Devuelve un mensaje de OK de cadena simple o una respuesta de error.

**Ejemplos**

**nota**  
En el siguiente ejemplo, se utilizan argumentos nativos de [valkey-cli](https://valkey.io/topics/cli/), como eliminar las comillas y los valores de escape de los datos, antes de enviarlos a Valkey o Redis OSS. Para usar otros clientes de lenguajes de programación (Python, Ruby, C\$1, etc.), siga las reglas de manejo de esos entornos para tratamiento de cadenas y datos binarios. Para obtener más información sobre los clientes compatibles, consulte [Herramientas](https://aws.amazon.com/developer/tools/) sobre las que basarse AWS

**Example 1: Crear algunos índices**  
Cree un índice para vectores de tamaño 2  

```
FT.CREATE hash_idx1 ON HASH PREFIX 1 hash: SCHEMA vec AS VEC VECTOR HNSW 6 DIM 2 TYPE FLOAT32 DISTANCE_METRIC L2
OK
```
Cree un índice JSON de 6 dimensiones mediante el algoritmo HNSW:  

```
FT.CREATE json_idx1 ON JSON PREFIX 1 json: SCHEMA $.vec AS VEC VECTOR HNSW 6 DIM 6 TYPE FLOAT32 DISTANCE_METRIC L2
OK
```

**Example Ejemplo 2: Rellenar algunos datos**  
Los siguientes comandos utilizan un formato que permite que se ejecuten como argumentos en el programa de terminal redis-cli. Los desarrolladores que utilicen otros clientes de lenguajes de programación (Python, Ruby, C\$1, etc.) deberán seguir las reglas de control de esos entornos para el tratamiento de cadenas y datos binarios.  
Creación de algunos datos hash y json:  

```
HSET hash:0 vec "\x00\x00\x00\x00\x00\x00\x00\x00"
HSET hash:1 vec "\x00\x00\x00\x00\x00\x00\x80\xbf"
JSON.SET json:0 . '{"vec":[1,2,3,4,5,6]}'
JSON.SET json:1 . '{"vec":[10,20,30,40,50,60]}'
JSON.SET json:2 . '{"vec":[1.1,1.2,1.3,1.4,1.5,1.6]}'
```
Tenga en cuenta lo siguiente:  
+ Las claves de los datos HASH y JSON tienen los prefijos de sus definiciones de índice.
+ Los vectores se encuentran en las rutas apropiadas de las definiciones del índice.
+ Los vectores HASH se ingresan como datos hexadecimales, mientras que los datos JSON se ingresan como números.
+ Los vectores tienen las longitudes adecuadas, las entradas del vector HASH bidimensional tienen dos valores flotantes de datos hexadecimales y las entradas vectoriales json de seis dimensiones tienen seis números.

**Example Ejemplo 3: Eliminar y volver a crear un índice**  

```
FT.DROPINDEX json_idx1
OK

FT.CREATE json_idx1 ON JSON PREFIX 1 json: SCHEMA $.vec AS VEC VECTOR FLAT 6 DIM 6 TYPE FLOAT32 DISTANCE_METRIC L2
OK
```
Tenga en cuenta que el nuevo índice JSON usa el algoritmo `FLAT` en lugar del algoritmo `HNSW`. Tenga en cuenta también que volverá a indexar los datos JSON existentes:  

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