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 emdtype
, 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)