FT.CREATE

FT.CREATE cria um índice pesquisável.

Sintaxe

FT.CREATE index
  ON HASH
  [PREFIX count prefix [prefix ...]]
  SCHEMA field_name [AS alias] VECTOR [HNSW|FLAT] attribute_count [attribute_name attribute_value])
  • index (obrigatório): é o nome que você dá ao índice. Se um índice com a mesma nome já existir, será retornado um erro.

  • ON HASH (opcional): indica o tipo de dados HASH. Somente o tipo de dados HASH é compatível.

  • PREFIX [count] [prefix] (opcional): indica quais chaves de hash devem ser indexadas.

  • SCHEMA hash_field_name (obrigatório): o hash_field_name após SCHEMA identifica o nome do campo. no hash. [AS alias] atribui o nome alias como um alias para o de nome do campo.

Tipos de campo

  • VECTOR (obrigatório): campo vetorial para pesquisa vetorial:

    • [HNSW|FLAT] (obrigatório): algoritmo designado. FLAT (força bruta) ou HNSW (Hierarchical Navigable Small World).

    • attribute_count (obrigatório): contagem total de nomes e valores do atributo. são transmitidos na configuração do algoritmo.

    • attribute_name attribute_value: pares de chave-valor que definem a configuração do índice, mas são específicos para um dos dois algoritmos disponíveis.

      • Atributos obrigatórios do algoritmo HNSW:

        • DIM (obrigatório): é a contagem de dimensões vetoriais. Os valores aceitos são de 1 a 32768.

        • TYPE (obrigatório): o tipo de vetor. Somente FLOAT32 é aceito.

        • DISTANCE_METRIC (obrigatório): precisa ser um dos seguintes: L2, IP ou COSINE.

      • Atributos opcionais do algoritmo HNSW:

        • EF_RUNTIME (opcional): define a contagem de vetores a serem examinados durante uma operação de consulta. O padrão é 10, e o máximo é 4096. É possível definir esse valor de parâmetro para cada consulta executada. Valores mais altos aumentam o tempo das consultas, mas melhoram o recall da consulta.

        • M (opcional): a contagem máxima de arestas de saída permitidas para cada nó no gráfico em cada camada. O número máximo de arestas de saída é 2 milhões para a camada 0. O padrão é 16. O máximo é 512.

        • EF_CONSTRUCTION (opcional): define a contagem de vetores a serem examinados durante a criação do índice. O padrão é 200, e o máximo é 4096. Valores mais altos aumentam o tempo necessário para criar índices, mas melhoram a proporção de recuperação.

        • INITIAL_CAP (opcional): determina a capacidade vetorial inicial do índice. O padrão é 1024. Esse parâmetro determina a alocação de memória do índice.

      • Atributos obrigatórios do algoritmo FLAT:

        • DIM (obrigatório): é a contagem de dimensões vetoriais.

        • TYPE (obrigatório): o tipo de vetor. Só há suporte para FLOAT32.

        • DISTANCE_METRIC (obrigatório): precisa ser um dos seguintes: L2, IP ou COSINE.

      • Atributos opcionais do algoritmo FLAT:

        • INITIAL_CAP (opcional): determina a capacidade vetorial inicial do índice. Esse parâmetro determina a alocação de memória do índice.

Exemplos

Exemplo de HNSW:

FT.CREATE my_index_name SCHEMA my_hash_field_key VECTOR HNSW 10 TYPE FLOAT32 DIM 20 DISTANCE_METRIC COSINE M 4 EF_CONSTRUCTION 100

Exemplo de FLAT:

FT.CREATE my_index_name SCHEMA my_hash_field_key VECTOR Flat 8 TYPE FLOAT32 DIM 20 DISTANCE_METRIC COSINE INITIAL_CAP 15000