FT.CREATE - Amazon ElastiCache

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

El comando FT.CREATE crea un índice vacío e inicia el proceso de relleno. Cada índice consta de una serie de definiciones de campo. Cada definición de campo especifica un nombre de campo, un tipo de campo y una ruta dentro de cada clave indexada para localizar un valor del tipo declarado. Algunas definiciones de tipos de campo tienen especificadores de subtipos adicionales.

Para los índices de las claves HASH, la ruta es la misma que el nombre del miembro hash. Si lo desea, puede utilizar la cláusula AS opcional para cambiar el nombre del campo. El cambio de nombre de los campos es especialmente útil cuando el nombre del miembro contiene caracteres especiales.

En el caso de los índices de claves JSON, la ruta es una ruta JSON a los datos del tipo declarado. Como la ruta JSON siempre contiene caracteres especiales, la cláusula AS es obligatoria.

Sintaxis

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

<index-name> (obligatorio): es el nombre que le asigna al índice. Si ya existe un índice con el mismo nombre, se devuelve un error.

ON HASH | JSON (opcional): en este índice solo se incluyen las claves que coinciden con el tipo especificado. Si se omite, se toma HASH.

PREFIX <prefix-count> <prefix> (opcional): si se especifica esta cláusula, solo se incluirán en este índice las claves que comiencen con los mismos bytes que uno o más de los prefijos especificados. Si se omite esta cláusula, se incluirán todas las claves del tipo correcto. Un prefijo de longitud cero también coincidiría con todas las claves del tipo correcto.

Tipos de campo:

  • TAG: un campo de etiqueta es una cadena que contiene uno o más valores de etiqueta.

    • SEPARATOR <sep> (opcional): es uno de los caracteres ,.<>{}[]"':;!@#$%^&*()-+=~ que se utiliza para delimitar etiquetas individuales. Si se omite, el valor predeterminado es ,.

    • CASESENSITIVE (opcional): si está presente, las comparaciones de etiquetas distinguirán entre mayúsculas y minúsculas. De forma predeterminada, las comparaciones de etiquetas NO distinguen entre mayúsculas y minúsculas.

  • NUMERIC: un campo numérico contiene un número.

  • VECTOR: un campo vectorial contiene un vector. Actualmente se admiten dos algoritmos de indexación vectorial: HNSW (pequeño mundo navegable jerárquico) y FLAT (fuerza bruta). Cada algoritmo tiene un conjunto de atributos adicionales, algunos obligatorios y otros opcionales.

    • FLAT: el algoritmo Flat proporciona respuestas exactas, pero tiene un tiempo de ejecución proporcional al número de vectores indexados y, por lo tanto, puede no ser apropiado para conjuntos de datos de gran tamaño.

      • DIM <number> (obligatorio): especifica el número de dimensiones de un vector.

      • TIPO FLOAT32 (obligatorio): tipo de datos, actualmente solo FLOAT32 se admite.

      • DISTANCE_METRIC [L2 | IP | COSINE] (obligatorio): especifica el algoritmo de distancia.

      • INITIAL_CAP <size> (opcional): tamaño del índice inicial.

    • HNSW: el algoritmo HNSW proporciona respuestas aproximadas, pero funciona mucho más rápido que el FLAT.

      • DIM <number> (obligatorio): especifica el número de dimensiones de un vector.

      • TIPO FLOAT32 (obligatorio): tipo de datos, actualmente solo FLOAT32 se admite.

      • DISTANCE_METRIC [L2 | IP | COSINE] (obligatorio): especifica el algoritmo de distancia.

      • INITIAL_CAP <size> (opcional): tamaño del índice inicial.

      • M <number> (opcional): número máximo de periferias salientes permitido para cada nodo del gráfico en cada capa. En la capa cero, el número máximo de periferias salientes será de 2*M. El valor predeterminado es 16 y el máximo es 512.

      • EF_CONSTRUCTION <number> (opcional): 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_RUNTIME <number> (opcional): controla el número de vectores que se va a examinar durante una operación de consulta. El valor predeterminado es 10 y el máximo es 4096. Puede establecer este valor de parámetro para cada consulta que ejecute. Los valores más altos aumentan los tiempos de consulta, pero mejoran la recuperación de las consultas.

RESPONSE: OK o error.