Criação de uma coleção

Este tópico descreve como criar uma coleção no Milvus.

Uma coleção consiste em uma ou mais partições. Ao criar uma nova coleção, o Milvus cria automaticamente uma partição padrão chamada _default.

O exemplo a seguir cria uma coleção chamada livro com dois shards. Inclui um campo de chave primária chamado id_livro, um campo escalar INT64 chamado qtd_palavras e um campo de vetor de ponto flutuante bidimensional chamado intro_livro. Aplicações reais podem utilizar dimensões de vetor superiores às do exemplo.

Definição do Esquema da Coleção

A coleção a ser criada deve incluir um campo de chave primária e um campo de vetor. O campo de chave primária suporta os tipos de dados INT64 e VarChar.

Dica: A definição de esquema da coleção é semelhante à definição da estrutura de uma tabela no MYSQL.

Antes de definir o esquema da coleção, crie um esquema para cada campo na coleção. Para simplificar a complexidade da inserção de dados, o Milvus permite especificar um valor padrão para cada campo escalar (exceto para o campo de chave primária). Isso significa que se um campo for deixado vazio durante a inserção de dados, o valor padrão configurado para este campo durante a criação do esquema do campo será utilizado.

var (
    nomeColecao = "livro"
    )
esquema := &entidade.Esquema{
  NomeColecao: nomeColecao,
  Descrição:    "Teste de busca de livros",
  Campos: []*entidade.Campo{
    {
      Nome:       "id_livro",
      TipoDado:   entidade.TipoCampoInt64,
      ChavePrimaria: true,
      AutoID:     false,
    },
    {
      Nome:       "qtd_palavras",
      TipoDado:   entidade.TipoCampoInt64,
      ChavePrimaria: false,
      AutoID:     false,
    },
    {
      Nome:     "intro_livro",
      TipoDado: entidade.TipoCampoVetorFlutuante,
      ParametrosTipo: map[string]string{
          "dim": "2",
      },
    },
  },
  HabilitarCampoDinamico: true
}

Tipo Parâmetro Descrição Opções
entidade.Esquema NomeColecao Nome da coleção a ser criada N/A
Descrição Descrição da coleção a ser criada N/A
AutoID Interruptor usado para habilitar ou desabilitar a alocação automática de ID (chave primária) Verdadeiro ou Falso
Campos Esquemas dos campos na coleção a ser criada. Para mais informações, consulte o esquema N/A
HabilitarCampoDinamico Se habilita o esquema dinâmico. Para mais informações sobre o esquema dinâmico, consulte o Guia do Usuário de Gerenciamento de Esquema e Coleção Dinâmicos N/A
entidade.Campo Nome Nome do campo a ser criado N/A
ChavePrimaria Se este campo é uma chave primária. Necessário para campos de chave primária N/A
AutoID Se o valor do campo é autoincrementado. Necessário para campos de chave primária N/A
Descrição Descrição do campo N/A
TipoDado Tipo de dado do campo a ser criado Para campos de chave primária: - entidade.TipoCampoInt64 (numpy.int64) - entidade.TipoCampoVarChar (VARCHAR) Para campos escalares: - entidade.TipoCampoBool (Boleano) - entidade.TipoCampoInt8 (numpy.int8) - entidade.TipoCampoInt16 (numpy.int16) - entidade.TipoCampoInt32 (numpy.int32) - entidade.TipoCampoInt64 (numpy.int64) - entidade.TipoCampoFlutuante (numpy.float32) - entidade.TipoCampoDuplo (numpy.double) - entidade.TipoCampoVarChar (VARCHAR) Para campos de vetor: - entidade.TipoCampoVetorBinario (Vetor binário) - entidade.TipoCampoVetorFlutuante (Vetor de ponto flutuante)
ParametrosTipo Mapeamento para a string que define parâmetros para tipos de dados específicos N/A
ParametrosIndice Mapeamento para a string que define parâmetros de índice da coleção N/A
ÉDinamico Se este campo habilita esquema dinâmico N/A
ÉChavePartição Se este campo atua como chave de partição N/A

Criar uma coleção com base na estrutura definida

Em seguida, crie uma coleção usando o esquema especificado.

err = clienteMilvus.CriarColecao(
    context.Background(), // ctx
    esquema,
    2, // numShards
)
if err != nil {
    log.Fatal("Falha ao criar coleção: ", err.Error())
}
Parâmetro Descrição Opções
ctx Contexto para controlar o processo de chamada da API N/A
numShards Número de shards na coleção a ser criada [1,16]

Restrições de Coleção

Configuração de Recurso

Recurso Limite Máximo
Comprimento do nome da coleção 255 caracteres
Número de partições na coleção 4.096
Número de campos na coleção 64
Número de shards na coleção 16

Parâmetro default_value

  • default_value se aplica apenas a campos escalares não-array e não-JSON.
  • default_value não se aplica a chaves primárias.
  • O tipo de dados de default_value deve ser o mesmo que o tipo de dados especificado em dtype, caso contrário podem ocorrer erros.
  • Se auto_id for usado, não é permitido definir todos os campos restantes para usar valores padrão. Em outras palavras, ao realizar operações de inserção ou atualização, é necessário especificar um valor para pelo menos um campo, caso contrário podem ocorrer erros.

Verificar se uma coleção existe

collExists, err := milvusClient.HasCollection(ctx, nomeDaColecao)
if err != nil {
    log.Fatal("Falha ao verificar se a coleção existe: ", err.Error())
}

Excluir uma coleção

_ = milvusClient.DropCollection(ctx, nomeDaColecao)

Consultar todas as coleções

colecoes, err := milvusClient.ListCollections(ctx)