FT.CREATE - Amazon ElastiCache

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

FT.CREATE

O comando FT.CREATE cria um índice vazio e inicia o processo de preenchimento. Cada índice consiste em várias definições de campo. Cada definição de campo especifica um nome de campo, um tipo de campo e um caminho dentro de cada chave indexada para localizar um valor do tipo declarado. Algumas definições de tipo de campo têm especificadores de subtipo adicionais.

Para índices em chaves HASH, o caminho é igual ao nome do membro do hash. A cláusula AS opcional pode ser usada para renomear o campo, se desejado. A renomeação de campos é especialmente útil quando o nome do membro contém caracteres especiais.

Em índices em chaves JSON, o caminho é um caminho JSON para os dados do tipo declarado. Como o caminho JSON sempre contém caracteres especiais, a cláusula AS é obrigatória.

Sintaxe

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> (obrigatório): esse é o nome que você dá ao seu índice. Um erro será retornado se já houver um índice com o mesmo nome.

ON HASH | JSON (opcional): somente as chaves que correspondem ao tipo especificado são incluídas nesse índice. Se omitido, o HASH é assumido.

PREFIX <prefix-count> <prefix> (opcional): se essa cláusula for especificada, somente as chaves que começam com os mesmos bytes de um ou mais dos prefixos especificados serão incluídas nesse índice. Se essa cláusula for omitida, todas as chaves do tipo correto serão incluídas. Um prefixo de comprimento zero também corresponderia a todas as chaves do tipo correto.

Tipos de campo:

  • TAG: um campo de tag é uma string que contém um ou mais valores de tag.

    • SEPARATOR <sep> (opcional): um dos caracteres ,.<>{}[]"':;!@#$%^&*()-+=~ usados para delimitar tags individuais. Se for omitido, o padrão será ,.

    • CASESENSITIVE (opcional): se presentes, as comparações de tags farão distinção entre maiúsculas e minúsculas. O padrão é que as comparações de tags NÃO façam distinção entre maiúsculas e minúsculas.

  • NUMERIC: um campo que contém um número.

  • VECTOR: um campo que contém um vetor. Atualmente, dois algoritmos de indexação vetorial são compatíveis: HNSW (Hierarchical Navigable Small World) e FLAT (força bruta). Cada algoritmo tem um conjunto de atributos adicionais, alguns obrigatórios e outros opcionais.

    • FLAT: o algoritmo Flat fornece respostas exatas, mas tem runtime proporcional ao número de vetores indexados e, portanto, pode não ser apropriado para grandes conjuntos de dados.

      • DIM <number> (obrigatório): especifica o número de dimensões em um vetor.

      • TIPO FLOAT32 (obrigatório): Tipo de dados, atualmente somente FLOAT32 é suportado.

      • DISTANCE_METRIC [L2 | IP | COSINE] (obrigatório): especifica o algoritmo de distância.

      • INITIAL_CAP <size> (opcional): tamanho inicial do índice.

    • HNSW: o algoritmo HNSW fornece respostas aproximadas, mas opera substancialmente mais rápido que o FLAT.

      • DIM <number> (obrigatório): especifica o número de dimensões em um vetor.

      • TIPO FLOAT32 (obrigatório): Tipo de dados, atualmente somente FLOAT32 é suportado.

      • DISTANCE_METRIC [L2 | IP | COSINE] (obrigatório): especifica o algoritmo de distância.

      • INITIAL_CAP <size> (opcional): tamanho inicial do índice.

      • M <number> (opcional): número máximo de bordas de saída permitidas para cada nó no gráfico em cada camada. Na camada zero, o número máximo de bordas de saída será 2*M. O padrão é 16, o máximo é 512.

      • EF_CONSTRUCTION <number> (opcional): controla o número de vetores examinados durante a construção do índice. Valores mais altos para esse parâmetro melhorarão a taxa de recall às custas de tempos mais longos de criação do índice. O valor padrão é 200. O valor máximo é 4096.

      • EF_RUNTIME <number> (opcional): controla o número de vetores a serem examinados durante uma operação de consulta. O valor padrão é 10 e o máximo é 4096. Você pode definir esse valor de parâmetro para cada consulta executada. Valores mais altos aumentam os tempos de consulta, mas melhoram a recuperação da consulta.

RESPOSTA: OK ou erro.