Instalou os SDKs preferidos. Pode escolher entre várias linguagens, incluindo Python, Java, Go e Node.js.
Visão geral
No Milvus, armazena os seus embeddings vectoriais em colecções. Todos os embeddings vectoriais dentro de uma coleção partilham a mesma dimensionalidade e a mesma métrica de distância para medir a semelhança.
As colecções do Milvus suportam campos dinâmicos (ou seja, campos não pré-definidos no esquema) e incrementação automática de chaves primárias.
Para acomodar diferentes preferências, Milvus oferece dois métodos para criar uma coleção. Um permite uma configuração rápida, enquanto o outro permite uma personalização detalhada do esquema da coleção e dos parâmetros do índice.
Adicionalmente, pode visualizar, carregar, libertar e largar uma coleção quando necessário.
Criar coleção
Pode criar uma coleção de uma das seguintes formas:
Configuração rápida
Desta forma, pode criar uma coleção dando-lhe simplesmente um nome e especificando o número de dimensões dos embeddings de vetor a armazenar nesta coleção. Para obter detalhes, consulte Configuração rápida.
Configuração personalizada
Em vez de deixar o In Milvus decidir quase tudo para a sua coleção, pode determinar o esquema e os parâmetros de índice da coleção por si próprio. Para mais detalhes, consulte Configuração personalizada.
Configuração rápida
Tendo como pano de fundo o grande salto na indústria da IA, a maioria dos programadores apenas precisa de uma coleção simples mas dinâmica para começar. Milvus permite uma configuração rápida de tal coleção com apenas três argumentos:
Nome da coleção a criar,
Dimensão dos vectores a inserir, e
Tipo de métrica utilizada para medir as semelhanças entre as incorporações vectoriais.
Para uma configuração rápida, utilize o método create_collection() da classe MilvusClient para criar uma coleção com o nome e a dimensão especificados.
Para uma configuração rápida, utilize o método createCollection() da classe MilvusClientV2 para criar uma coleção com o nome e a dimensão especificados.
Para uma configuração rápida, utilize o método createCollection() da classe MilvusClient para criar uma coleção com o nome e a dimensão especificados.
Para uma configuração rápida, utilize o método CreateCollection() numa instância da interface Client utilizando o método NewClient() para criar uma coleção com o nome e a dimensão especificados.
Para uma configuração rápida, utilize o método POST /v2/vectordb/collections/create para criar uma coleção com o nome e a dimensão especificados.
A coleção gerada no código acima contém apenas dois campos: id (como a chave primária) e vector (como o campo vetorial), com as definições auto_id e enable_dynamic_field activadas por predefinição.
auto_id
A ativação desta definição garante que a chave primária é incrementada automaticamente. Não há necessidade de fornecimento manual de chaves primárias durante a inserção de dados.
enable_dynamic_field
Quando activada, todos os campos, excluindo id e vector nos dados a inserir, são tratados como campos dinâmicos. Estes campos adicionais são guardados como pares chave-valor num campo especial denominado $meta. Esta funcionalidade permite a inclusão de campos extra durante a inserção de dados.
A coleção automaticamente indexada e carregada a partir do código fornecido está pronta para a inserção imediata de dados.
Configuração personalizada
Em vez de deixar o Milvus decidir quase tudo para a sua coleção, pode determinar o esquema e os parâmetros de indexação da coleção por si próprio.
Passo 1: Configurar o esquema
Um esquema define a estrutura de uma coleção. No esquema, tem a opção de ativar ou desativar enable_dynamic_field, adicionar campos pré-definidos e definir atributos para cada campo. Para obter uma explicação detalhada do conceito e dos tipos de dados disponíveis, consulte Esquema explicado.
Para configurar um esquema, utilize create_schema() para criar um objeto de esquema e add_field() para adicionar campos ao esquema.
Para configurar um esquema, utilizar createSchema() para criar um objeto de esquema e addField() para adicionar campos ao esquema.
Para configurar um esquema, utilize entity.NewSchema() para criar um objeto de esquema e schema.WithField() para adicionar campos ao esquema.
Para configurar um esquema, é necessário definir um objeto JSON que siga o formato do esquema, conforme apresentado na POST /v2/vectordb/collections/create página de referência do ponto final da API.
Determina se o campo primário é incrementado automaticamente. Definir este parâmetro como Verdadeiro faz com que o campo primário seja incrementado automaticamente. Neste caso, o campo primário não deve ser incluído nos dados a inserir para evitar erros. Os IDs gerados automaticamente têm um comprimento fixo e não podem ser alterados.
enable_dynamic_field
Determina se o Milvus guarda os valores dos campos indefinidos num campo dinâmico se os dados que estão a ser inseridos na coleção de destino incluírem campos que não estão definidos no esquema da coleção. Se definir esta opção como True, o Milvus criará um campo chamado $meta para guardar quaisquer campos indefinidos e os respectivos valores dos dados inseridos.
field_name
O nome do campo.
datatype
O tipo de dados do campo. Para obter uma lista dos tipos de dados disponíveis, consulte DataType.
is_primary
Se o campo atual é o campo primário de uma coleção. Cada coleção tem apenas um campo primário. Um campo primário deve ser do tipo DataType.INT64 ou do tipo DataType.VARCHAR.
dim
A dimensão dos embeddings de vetor. Isto é obrigatório para um campo do tipo DataType.FLOAT_VECTOR, DataType.BINARY_VECTOR, DataType.FLOAT16_VECTOR ou DataType.BFLOAT16_VECTOR. Se utilizar DataType.SPARSE_FLOAT_VECTOR, omita este parâmetro.
Parâmetro
Descrição do campo
fieldName
O nome do campo.
dataType
O tipo de dados do campo. Para obter uma lista dos tipos de dados disponíveis, consulte DataType.
isPrimaryKey
Se o campo atual é o campo primário de uma coleção. Cada coleção tem apenas um campo primário. Um campo primário deve ser do tipo DataType.Int64 ou do tipo DataType.VarChar.
autoID
Se permite que o campo primário seja incrementado automaticamente. Se definir este valor como verdadeiro, o campo primário é incrementado automaticamente. Neste caso, o campo primário não deve ser incluído nos dados a inserir para evitar erros.
dimension
A dimensão dos embeddings de vetor. Isto é obrigatório para um campo do tipo DataType.FloatVector, DataType.BinaryVector, DataType.Float16Vector ou DataType.BFloat16Vector.
Parâmetro
Descrição do campo
name
O nome do campo.
data_type
O tipo de dados do campo. Para obter uma enumeração de todos os tipos de dados disponíveis, consulte DataType.
is_primary_key
Se o campo atual é o campo primário de uma coleção. Cada coleção tem apenas um campo primário. Um campo primário deve ser do tipo DataType.INT64 ou do tipo DataType.VARCHAR.
auto_id
Se o campo primário é automaticamente incrementado aquando da inserção de dados nesta coleção. O valor predefinido é False. Definir este parâmetro como True faz com que o campo primário seja incrementado automaticamente. Ignore este parâmetro se precisar de configurar uma coleção com um esquema personalizado.
dim
A dimensionalidade do campo de coleção que contém as incorporações de vetor. O valor deve ser um número inteiro superior a 1 e é normalmente determinado pelo modelo que utiliza para gerar incorporações de vetor.
Parâmetro
Descrição
WithName()
O nome do campo.
WithDataType()
O tipo de dados do campo.
WithIsPrimaryKey()
Se o campo atual é o campo primário de uma coleção. Cada coleção tem apenas um campo primário. Um campo primário deve ser do tipo entity.FieldTypeInt64 ou do tipo entity.FieldTypeVarChar.
WithIsAutoID()
Se o campo primário é automaticamente incrementado aquando da inserção de dados nesta coleção. O valor predefinido é false. Definir esse valor como true faz com que o campo primário seja incrementado automaticamente. Ignore este parâmetro se precisar de configurar uma coleção com um esquema personalizado.
WithDim()
A dimensionalidade do campo de coleção que contém as incorporações de vetor. O valor deve ser um número inteiro superior a 1 e é normalmente determinado pelo modelo que utiliza para gerar incorporações de vetor.
Parâmetro
Descrição
fieldName
O nome do campo a criar na coleção de destino.
dataType
O tipo de dados dos valores do campo.
isPrimary
Se o campo atual é o campo primário. Definir isto como True faz com que o campo atual seja o campo primário.
elementTypeParams
Parâmetros de campo extra.
dim
Um parâmetro opcional para campos FloatVector ou BinaryVector que determina a dimensão do vetor.
Passo 2: Configurar parâmetros de índice
Os parâmetros de indexação ditam a forma como o Milvus organiza os seus dados dentro de uma coleção. Pode personalizar o processo de indexação para campos específicos, ajustando os seus metric_type e index_type. Para o campo vetorial, tem a flexibilidade de selecionar COSINE, L2, IP, HAMMING, ou JACCARD como metric_type, dependendo do tipo de vectores com que está a trabalhar. Para obter mais informações, consulte Métricas de similaridade.
Para configurar os parâmetros de índice, utilize prepare_index_params() para preparar os parâmetros do índice e add_index() para adicionar o índice.
Para configurar os parâmetros de índice, utilize IndexParam.
Para configurar os parâmetros do índice, utilize createIndex().
Para configurar os parâmetros do índice, utilize CreateIndex().
Para configurar os parâmetros de índice, é necessário definir um objeto JSON que siga o formato dos parâmetros de índice, conforme apresentado na POST /v2/vectordb/collections/create página de referência do ponto de extremidade da API.
O nome do ficheiro de destino a que se aplica este objeto.
index_type
O nome do algoritmo utilizado para organizar os dados no campo específico. Para os algoritmos aplicáveis, consulte Índice na memória e Índice no disco.
metric_type
O algoritmo que é utilizado para medir a semelhança entre vectores. Os valores possíveis são IP, L2, COSINE, JACCARD, HAMMING. Esta opção só está disponível quando o campo especificado é um campo vetorial. Para mais informações, consulte Índices suportados em Milvus.
params
Os parâmetros de ajuste fino para o tipo de índice especificado. Para obter detalhes sobre as chaves possíveis e intervalos de valores, consulte Índice na memória.
Parâmetro
Descrição
fieldName
O nome do campo de destino a que se aplica este objeto IndexParam.
indexType
O nome do algoritmo utilizado para organizar os dados no campo específico. Para os algoritmos aplicáveis, consulte Índice na memória e Índice no disco.
metricType
A métrica de distância a utilizar para o índice. Os valores possíveis são IP, L2, COSINE, JACCARD, HAMMING.
O nome do campo de destino no qual um índice deve ser criado.
index_type
O nome do algoritmo utilizado para organizar os dados no campo específico. Para os algoritmos aplicáveis, consulte Índice na memória e Índice no disco.
metric_type
O algoritmo que é utilizado para medir a semelhança entre vectores. Os valores possíveis são IP, L2, COSINE, JACCARD, HAMMING. Esta opção só está disponível quando o campo especificado é um campo vetorial. Para mais informações, consulte Índices suportados em Milvus.
params
Os parâmetros de ajuste fino para o tipo de índice especificado. Para obter detalhes sobre as chaves possíveis e intervalos de valores, consulte Índice na memória.
Parâmetro
Descrição
index_type
O nome do algoritmo utilizado para organizar os dados no campo específico. Para os algoritmos aplicáveis, consulte Índice na memória e Índice no disco.
metric_type
O algoritmo que é utilizado para medir a semelhança entre vectores. Os valores possíveis são IP, L2, COSINE, JACCARD, HAMMING. Esta opção só está disponível quando o campo especificado é um campo vetorial. Para mais informações, consulte Índices suportados no Milvus.
nlist
Número de unidades de cluster. As unidades de cluster são usadas em índices baseados em IVF (Inverted File) em Milvus. Para IVF_FLAT, o índice divide os dados do vetor em unidades de cluster `nlist`, e depois compara as distâncias entre o vetor de entrada alvo e o centro de cada cluster1. Deve estar entre 1 e 65536.
Parâmetro
Descrição
fieldName
O nome do campo de destino no qual um índice deve ser criado.
indexName
O nome do índice a criar. O valor predefinido é o nome do campo de destino.
metricType
O algoritmo que é utilizado para medir a semelhança entre vectores. Os valores possíveis são IP, L2, COSINE, JACCARD, HAMMING. Esta opção só está disponível quando o campo especificado é um campo de vetor. Para obter mais informações, consulte Índices suportados no Milvus.
params
O tipo de índice e as configurações relacionadas. Para obter detalhes, consulte Índice na memória.
params.index_type
O tipo do índice a ser criado.
params.nlist
O número de unidades de cluster. Isto aplica-se aos tipos de índice relacionados com o IVF.
O fragmento de código acima demonstra como configurar os parâmetros de índice para o campo vetorial e um campo escalar, respetivamente. Para o campo vetorial, defina o tipo de métrica e o tipo de índice. Para um campo escalar, defina apenas o tipo de índice. Recomenda-se a criação de um índice para o campo vetorial e quaisquer campos escalares que sejam frequentemente utilizados para filtragem.
Passo 3: Criar a coleção
Tem a opção de criar uma coleção e um ficheiro de índice separadamente ou de criar uma coleção com o índice carregado simultaneamente na criação.
Utilize create_collection() para criar uma coleção com o esquema e os parâmetros de índice especificados e get_load_state() para verificar o estado de carregamento da coleção.
Utilize createCollection() para criar uma coleção com o esquema e os parâmetros de índice especificados e getLoadState() para verificar o estado de carregamento da coleção.
Utilize createCollection() para criar uma coleção com o esquema e os parâmetros de índice especificados e getLoadState() para verificar o estado de carregamento da coleção.
Crie uma coleção com o índice carregado simultaneamente aquando da criação.
# 3.5. Create a collection with the index loaded simultaneously
client.create_collection(
collection_name="customized_setup_1",
schema=schema,
index_params=index_params
)
time.sleep(5)
res = client.get_load_state(
collection_name="customized_setup_1"
)
print(res)
# Output## {# "state": "<LoadState: Loaded>"# }
import io.milvus.v2.service.collection.request.CreateCollectionReq;
import io.milvus.v2.service.collection.request.GetLoadStateReq;
// 3.4 Create a collection with schema and index parametersCreateCollectionReqcustomizedSetupReq1= CreateCollectionReq.builder()
.collectionName("customized_setup_1")
.collectionSchema(schema)
.indexParams(indexParams)
.build();
client.createCollection(customizedSetupReq1);
// Thread.sleep(5000);// 3.5 Get load state of the collectionGetLoadStateReqcustomSetupLoadStateReq1= GetLoadStateReq.builder()
.collectionName("customized_setup_1")
.build();
res = client.getLoadState(customSetupLoadStateReq1);
System.out.println(res);
// Output:// true
// 3.3 Create a collection with fields and index parameters
res = await client.createCollection({
collection_name: "customized_setup_1",
fields: fields,
index_params: index_params,
})
console.log(res.error_code)
// Output// // Success//
res = await client.getLoadState({
collection_name: "customized_setup_1"
})
console.log(res.state)
// Output// // LoadStateLoaded//
A coleção criada acima é carregada automaticamente. Para saber mais sobre o carregamento e a libertação de uma coleção, consulte Carregar e libertar colecções.
Crie uma coleção e um arquivo de índice separadamente.
# 3.6. Create a collection and index it separately
client.create_collection(
collection_name="customized_setup_2",
schema=schema,
)
res = client.get_load_state(
collection_name="customized_setup_2"
)
print(res)
# Output## {# "state": "<LoadState: NotLoad>"# }
// 3.6 Create a collection and index it separatelyCreateCollectionReqcustomizedSetupReq2= CreateCollectionReq.builder()
.collectionName("customized_setup_2")
.collectionSchema(schema)
.build();
client.createCollection(customizedSetupReq2);
// 3.4 Create a collection and index it seperately
res = await client.createCollection({
collection_name: "customized_setup_2",
fields: fields,
})
console.log(res.error_code)
// Output// // Success//
res = await client.getLoadState({
collection_name: "customized_setup_2"
})
console.log(res.state)
// Output// // LoadStateNotLoad//
// 3.4 Create a collection and index it seperately
schema.CollectionName = "customized_setup_2"
client.CreateCollection(ctx, schema, entity.DefaultShardNumber)
stateLoad, err := client.GetLoadState(context.Background(), "customized_setup_2", []string{})
if err != nil {
log.Fatal("failed to get load state:", err.Error())
}
fmt.Println(stateLoad)
// Output// 1// LoadStateNotExist -> LoadState = 0// LoadStateNotLoad -> LoadState = 1// LoadStateLoading -> LoadState = 2// LoadStateLoaded -> LoadState = 3
A coleção criada acima não é carregada automaticamente. Pode criar um índice para a coleção da seguinte forma. A criação de um índice para a coleção de uma forma separada não carrega automaticamente a coleção. Para obter detalhes, consulte Carregar e liberar coleção.
Parâmetro
Descrição
collection_name
O nome da coleção.
schema
O esquema desta coleção. Se definir este parâmetro como None indica que esta coleção será criada com as definições por defeito. Para configurar uma coleção com um esquema personalizado, é necessário criar um objeto CollectionSchema e referenciá-lo aqui. Neste caso, o Milvus ignora todas as outras definições relacionadas com o esquema incluídas no pedido.
index_params
Os parâmetros para construir o índice no campo vetorial desta coleção. Para configurar uma coleção com um esquema personalizado e carregar automaticamente a coleção para a memória, é necessário criar um objeto IndexParams e referenciá-lo aqui. Deve pelo menos adicionar um índice para o campo vetorial nesta coleção. Também pode ignorar este parâmetro se preferir configurar os parâmetros do índice mais tarde.
Parâmetro
Descrição
collectionName
O nome da coleção.
collectionSchema
O esquema desta coleção. Se o deixar vazio, indica que esta coleção será criada com as predefinições. Para configurar uma coleção com um esquema personalizado, é necessário criar um objeto CollectionSchema e referenciá-lo aqui.
indexParams
Os parâmetros para criar o índice no campo de vetor nesta coleção. Para configurar uma coleção com um esquema personalizado e carregar automaticamente a coleção para a memória, crie um objeto IndexParams com uma lista de objectos IndexParam e faça referência a este objeto aqui.
Parâmetro
Descrição
collection_name
O nome da coleção.
fields
Os campos na coleção.
index_params
Os parâmetros de índice para a coleção a criar.
Parâmetro
Descrição
schema.CollectionName
O nome da coleção.
schema
O esquema desta coleção.
index_params
Os parâmetros de índice para a coleção a criar.
Parâmetro
Descrição
collectionName
O nome da coleção.
schema
O esquema é responsável pela organização dos dados na coleção de destino. Um esquema válido deve ter vários campos, que devem incluir uma chave primária, um campo vetorial e vários campos escalares.
schema.autoID
Se permite que o campo primário seja incrementado automaticamente. Definir este valor como True faz com que o campo primário seja incrementado automaticamente. Neste caso, o campo primário não deve ser incluído nos dados a inserir para evitar erros. Defina este parâmetro no campo com is_primary definido como True.
schema.enableDynamicField
Se permite utilizar o campo reservado $meta para guardar campos não definidos pelo esquema em pares de valores chave.
fields
Uma lista de objectos de campo.
fields.fieldName
O nome do campo a criar na coleção de destino.
fields.dataType
O tipo de dados dos valores do campo.
fields.isPrimary
Se o campo atual é o campo primário. Definir isto como True torna o campo atual o campo primário.
fields.elementTypeParams
Parâmetros de campo extra.
fields.elementTypeParams.dim
Um parâmetro opcional para campos FloatVector ou BinaryVector que determina a dimensão do vetor.
A coleção criada acima não é carregada automaticamente. Pode criar um índice para a coleção da seguinte forma. A criação de um índice para a coleção de uma forma separada não carrega automaticamente a coleção. Para obter detalhes, consulte Carregar e liberar coleção.
CreateIndexReqcreateIndexReq= CreateIndexReq.builder()
.collectionName("customized_setup_2")
.indexParams(indexParams)
.build();
client.createIndex(createIndexReq);
// Thread.sleep(1000);// 3.7 Get load state of the collectionGetLoadStateReqcustomSetupLoadStateReq2= GetLoadStateReq.builder()
.collectionName("customized_setup_2")
.build();
res = client.getLoadState(customSetupLoadStateReq2);
System.out.println(res);
// Output:// false
Um objeto IndexParams que contém uma lista de objectos IndexParam.
Parâmetro
Descrição
collectionName
O nome da coleção.
indexParams
Uma lista de objectos IndexParam.
Parâmetro
Descrição
collection_name
O nome da coleção.
field_name
O nome do campo no qual se pretende criar um índice.
index_type
O nome do algoritmo utilizado para organizar os dados no campo específico. Para obter informações sobre os algoritmos aplicáveis, consulte Índice na memória e Índice no disco.
metric_type
O algoritmo que é utilizado para medir a semelhança entre vectores. Os valores possíveis são IP, L2, COSINE, JACCARD, HAMMING. Esta opção só está disponível quando o campo especificado é um campo vetorial. Para mais informações, consulte Índices suportados no Milvus.
params
Os parâmetros de ajuste fino para o tipo de índice especificado. Para obter detalhes sobre as chaves possíveis e intervalos de valores, consulte Índice na memória.
Parâmetro
Descrição
collName
O nome da coleção.
fieldName
O nome do campo no qual será criado um índice.
idx
O nome do algoritmo utilizado para organizar os dados no campo específico. Para obter informações sobre os algoritmos aplicáveis, consulte Índice na memória e Índice no disco.
async
Se esta operação é assíncrona.
opts
Os parâmetros de ajuste fino para o tipo de índice especificado. Você pode incluir vários `entity.IndexOption` nesta solicitação. Para obter detalhes sobre possíveis chaves e intervalos de valores, consulte Índice na memória.
Parâmetro
Descrição
collectionName
O nome da coleção.
indexParams
Os parâmetros de índice para a coleção a ser criada.
indexParams.metricType
O tipo de métrica de similaridade utilizado para criar o índice. O valor predefinido é COSINE.
indexParams.fieldName
O nome do campo de destino no qual um índice deve ser criado.
indexParams.indexName
O nome do índice a criar, o valor predefinido é o nome do campo de destino.
indexParams.indexConfig.index_type
O tipo do índice a ser criado.
indexParams.indexConfig.nlist
O número de unidades de cluster. Isto aplica-se aos tipos de índice relacionados com FIV.
# 6. List all collection names
res = client.list_collections()
print(res)
# Output## [# "customized_setup_2",# "quick_setup",# "customized_setup_1"# ]
import io.milvus.v2.service.collection.response.ListCollectionsResp;
// 5. List all collection namesListCollectionsResplistCollectionsRes= client.listCollections();
System.out.println(listCollectionsRes.getCollectionNames());
// Output:// [// "customized_setup_2",// "quick_setup",// "customized_setup_1"// ]
// 5. List all collection namesListCollectionsResplistCollectionsRes= client.listCollections();
System.out.println(listCollectionsRes.getCollectionNames());
// Output:// [// "customized_setup_1",// "quick_setup",// "customized_setup_2"// ]
// 5. List all collection names
collections, err := client.ListCollections(ctx)
if err != nil {
log.Fatal("failed to list collection:", err.Error())
}
for _, c := range collections {
log.Println(c.Name)
}
// Output:// customized_setup_2// quick_setup
Durante o processo de carregamento de uma coleção, o Milvus carrega o ficheiro de índice da coleção para a memória. Por outro lado, ao liberar uma coleção, Milvus descarrega o arquivo de índice da memória. Antes de efetuar pesquisas numa coleção, certifique-se de que a coleção está carregada.
Carregar uma coleção
Para carregar uma coleção, utilize o método load_collection() especificando o nome da coleção. Também pode definir replica_number para determinar quantas réplicas de segmentos de dados na memória devem ser criadas nos nós de consulta quando a coleção é carregada.
Milvus Standalone: O valor máximo permitido para replica_number é 1.
Milvus Cluster: O valor máximo não deve exceder o queryNode.replicas definido nas configurações do Milvus. Para obter mais detalhes, consulte Configurações relacionadas ao nó de consulta.
Para carregar uma coleção, utilize o método loadCollection() especificando o nome da coleção.
Para carregar uma coleção, utilize o método loadCollection() especificando o nome da coleção.
Para carregar uma coleção, utilize o método LoadCollection() especificando o nome da coleção.
# 7. Load the collection
client.load_collection(
collection_name="customized_setup_2",
replica_number=1# Number of replicas to create on query nodes. Max value is 1 for Milvus Standalone, and no greater than `queryNode.replicas` for Milvus Cluster.
)
res = client.get_load_state(
collection_name="customized_setup_2"
)
print(res)
# Output## {# "state": "<LoadState: Loaded>"# }
import io.milvus.v2.service.collection.request.LoadCollectionReq;
// 6. Load the collectionLoadCollectionReqloadCollectionReq= LoadCollectionReq.builder()
.collectionName("customized_setup_2")
.build();
client.loadCollection(loadCollectionReq);
// Thread.sleep(5000);// 7. Get load state of the collectionGetLoadStateReqloadStateReq= GetLoadStateReq.builder()
.collectionName("customized_setup_2")
.build();
res = client.getLoadState(loadStateReq);
System.out.println(res);
// Output:// true
// 7. Load the collection
res = await client.loadCollection({
collection_name: "customized_setup_2"
})
console.log(res.error_code)
// Output// // Success// awaitsleep(3000)
res = await client.getLoadState({
collection_name: "customized_setup_2"
})
console.log(res.state)
// Output// // LoadStateLoaded//
// 6. Load the collection
err = client.LoadCollection(ctx, "customized_setup_2", false)
if err != nil {
log.Fatal("failed to laod collection:", err.Error())
}
// 7. Get load state of the collection
stateLoad, err := client.GetLoadState(context.Background(), "customized_setup_2", []string{})
if err != nil {
log.Fatal("failed to get load state:", err.Error())
}
fmt.Println(stateLoad)
// Output:// 3// LoadStateNotExist -> LoadState = 0// LoadStateNotLoad -> LoadState = 1// LoadStateLoading -> LoadState = 2// LoadStateLoaded -> LoadState = 3
Carregar uma coleção parcialmente (Pré-visualização pública)
Esta funcionalidade está atualmente em pré-visualização pública. A API e a funcionalidade podem mudar no futuro.
Ao receber o seu pedido de carregamento, o Milvus carrega todos os índices dos campos vectoriais e todos os dados dos campos escalares para a memória. Se alguns campos não estiverem envolvidos em pesquisas e consultas, pode excluí-los do carregamento para reduzir a utilização da memória, melhorando o desempenho da pesquisa.
# 7. Load the collection
client.load_collection(
collection_name="customized_setup_2",
load_fields=["my_id", "my_vector"], # Load only the specified fields
skip_load_dynamic_field=True# Skip loading the dynamic field
)
res = client.get_load_state(
collection_name="customized_setup_2"
)
print(res)
# Output## {# "state": "<LoadState: Loaded>"# }
Note-se que apenas os campos listados em load_fields podem ser utilizados como condições de filtragem e campos de saída em pesquisas e consultas. Deve incluir sempre a chave primária na lista. Os nomes de campo excluídos do carregamento não estarão disponíveis para filtragem ou saída.
Pode utilizar skip_load_dynamic_field=True para saltar o carregamento do campo dinâmico. O Milvus trata o campo dinâmico como um único campo, pelo que todas as chaves do campo dinâmico serão incluídas ou excluídas em conjunto.
Libertar uma coleção
Para libertar uma coleção, utilize o método release_collection() especificando o nome da coleção.
Para libertar uma coleção, utilize o método releaseCollection() especificando o nome da coleção.
Para libertar uma coleção, utilize o método releaseCollection() método, especificando o nome da coleção.
Para libertar uma coleção, utilize o método ReleaseCollection() método, especificando o nome da coleção.
Pode atribuir pseudónimos às colecções para as tornar mais significativas num contexto específico. É possível atribuir vários pseudónimos a uma coleção, mas não é possível partilhar um pseudónimo com várias colecções.
Criar aliases
Para criar aliases, utilize o método create_alias() especificando o nome da coleção e o alias.
Para criar aliases, utilize o método createAlias() especificando o nome da coleção e o alias.
Para criar aliases, utilize o método createAlias() especificando o nome da coleção e o pseudónimo.
É possível definir propriedades para uma coleção, tais como ttl.seconds e mmap.enabled. Para obter mais informações, consulte set_properties().
Os trechos de código nesta secção utilizam o módulo PyMilvus ORM para interagir com Milvus. Os trechos de código com o novo SDK MilvusClient estarão disponíveis em breve.
Definir TTL
Define o Time-To-Live (TTL) para os dados na coleção, o que especifica quanto tempo os dados devem ser retidos antes de serem automaticamente eliminados.
from pymilvus import Collection, connections
# Connect to Milvus server
connections.connect(host="localhost", port="19530") # Change to your Milvus server IP and port# Get existing collection
collection = Collection("quick_setup")
# Set the TTL for the data in the collection
collection.set_properties(
properties={
"collection.ttl.seconds": 60
}
)
Definir MMAP
Configure a propriedade de mapeamento de memória (MMAP) para a coleção, que determina se os dados são mapeados na memória para melhorar o desempenho da consulta. Para obter mais informações, consulte Configurar mapeamento de memória.
Antes de definir a propriedade MMAP, liberte primeiro a coleção. Caso contrário, ocorrerá um erro.
from pymilvus import Collection, connections
# Connect to Milvus server
connections.connect(host="localhost", port="19530") # Change to your Milvus server IP and port# Get existing collection
collection = Collection("quick_setup")
# Before setting memory mapping property, we need to release the collection first.
collection.release()
# Set memory mapping property to True or Flase
collection.set_properties(
properties={
"mmap.enabled": True
}
)
Abandonar uma coleção
Se uma coleção já não for necessária, pode abandoná-la.
Para eliminar uma coleção, utilize o método drop_collection() especificando o nome da coleção.
Para eliminar uma coleção, utilize o método dropCollection() especificando o nome da coleção.
Para eliminar uma coleção, utilize o método dropCollection() método, especificando o nome da coleção.
Para eliminar uma coleção, utilize o método DropCollection() método, especificando o nome da coleção.
// 10. Drop the collection
res = await client.dropCollection({
collection_name: "customized_setup_2"
})
console.log(res.error_code)
// Output// // Success//
res = await client.dropCollection({
collection_name: "customized_setup_1"
})
console.log(res.error_code)
// Output// // Success//
res = await client.dropCollection({
collection_name: "quick_setup"
})
console.log(res.error_code)
// Output// // Success//
// 10. Drop collections
err = client.DropCollection(ctx, "quick_setup")
if err != nil {
log.Fatal("failed to drop collection:", err.Error())
}
err = client.DropCollection(ctx, "customized_setup_2")
if err != nil {
log.Fatal("failed to drop collection:", err.Error())
}