

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
<a name="vector-search-commands-ft.create"></a>

 Cria um índice e inicia um preenchimento desse índice. Para obter mais informações, consulte [Visão geral da pesquisa vetorial](https://docs.aws.amazon.com/memorydb/latest/devguide/vector-search-overview.html) para obter detalhes sobre a construção do índice.

**Sintaxe**

```
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 de campo:
  + Para chaves de hash, o identificador de campo é um nome de campo.
  + Para chaves JSON, o identificador de campo é um caminho JSON.

  Para obter mais informações, consulte [Tipos de campos de índice](vector-search-overview.md#vector-search-index-field-types).
+ Tipos de campos:
  + ETIQUETA: para obter mais informações, consulte [Etiquetas](https://redis.io/docs/interact/search-and-query/advanced-concepts/tags/).
  + NUMÉRICO: o campo contém um número.
  + TEXTO: o campo contém qualquer blob de dados.
  + VETOR: campo vetorial que oferece suporte para pesquisa vetorial.
    + Algoritmo: pode ser HNSW (Hierarchical Navigable Small World) ou FLAT (força bruta). 
    + `attr_count`: número de atributos que serão passados como configuração do algoritmo, incluindo nomes e valores. 
    + `{attribute_name} {attribute_value}`— key/value pares específicos de algoritmos que definem a configuração do índice. 

      Para o algoritmo FLAT, os atributos são:

      Obrigatório:
      + DIM: número de dimensões no vetor.
      + DISTANCE\$1METRIC: pode ser um dos [L2 \$1 IP \$1 COSINE].
      + TYPE: Tipo de vetor. O único tipo com suporte é `FLOAT32`.

      Opcional:
      + INITIAL\$1CAP: capacidade vetorial inicial no índice que afeta o tamanho da alocação de memória do índice.

      Para o algoritmo HNSW, os atributos são:

      Obrigatório:
      + TYPE: Tipo de vetor. O único tipo com suporte é `FLOAT32`.
      + DIM: dimensão de vetor, especificada como um número inteiro positivo. Máximo: 32768
      + DISTANCE\$1METRIC: pode ser um dos [L2 \$1 IP \$1 COSINE].

      Opcional:
      + INITIAL\$1CAP: capacidade vetorial inicial no índice que afeta o tamanho da alocação de memória do índice. O padrão é 1024.
      + M: 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á 2M. O padrão é 16 e o máximo é 512.
      + EF\$1CONSTRUCTION: 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\$1RUNTIME: controla o número de vetores examinados durante as operações de consulta. Valores mais altos para esse parâmetro podem gerar melhor recuperação à custa de tempos de consulta mais longos. O valor desse parâmetro pode ser substituído para cada consulta. O valor padrão é 10 O valor máximo é 4096.

**Return**

Retorna uma mensagem simples de texto OK ou uma resposta de erro.

**Exemplos**

**nota**  
O exemplo a seguir usa argumentos nativos para [valkey-cli](https://valkey.io/topics/cli/), como remoção de aspas e remoção de escape de dados, antes de enviá-los ao Valkey ou Redis OSS. Para usar outros clientes de linguagem de programação (Python, Ruby, C\$1 etc.), siga as regras de manipulação desses ambientes para lidar com strings e dados binários. Para obter mais informações sobre clientes compatíveis, consulte [Ferramentas para desenvolver AWS](https://aws.amazon.com/developer/tools/)

**Example 1: Crie alguns índices**  
Crie um índice para vetores de tamanho 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
```
Crie um índice JSON de 6 dimensões usando o 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 Exemplo 2: preencha alguns dados**  
Os comandos a seguir são formatados para que possam ser executados como argumentos para o programa de terminal redis-cli. Os desenvolvedores que usam outros clientes de linguagem de programação (Python, Ruby, C\$1 etc.) precisarão seguir as regras de manipulação desses ambientes para lidar com strings e dados binários.  
Criação de alguns dados de hash e 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]}'
```
Observe o seguinte:  
+ As chaves dos dados de hash e JSON têm os prefixos de suas definições de índice.
+ Os vetores estão nos caminhos apropriados das definições do índice.
+ Os vetores de hash são inseridos como dados hexadecimais, enquanto os dados JSON são inseridos como números.
+ Os vetores têm os comprimentos apropriados, as entradas bidimensionais do vetor hash têm dois valores flutuantes de dados hexadecimais, as entradas vetoriais json de seis dimensões têm seis números.

**Example Exemplo 3: exclua e recrie um í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
```
Observe que o novo índice JSON usa o algoritmo `FLAT` em vez do algoritmo `HNSW`. Observe também que ele reindexará os dados 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]}]"
```