Ha instalado los SDK preferidos. Puede elegir entre varios lenguajes, incluyendo Python, Java, Go y Node.js.
Visión general
En Milvus, usted almacena sus incrustaciones vectoriales en colecciones. Todas las incrustaciones vectoriales dentro de una colección comparten la misma dimensionalidad y métrica de distancia para medir la similitud.
Las colecciones Milvus soportan campos dinámicos (es decir, campos no predefinidos en el esquema) e incremento automático de claves primarias.
Para adaptarse a las distintas preferencias, Milvus ofrece dos métodos para crear una colección. Uno proporciona una configuración rápida, mientras que el otro permite una personalización detallada del esquema de la colección y de los parámetros del índice.
Además, puede ver, cargar, liberar y soltar una colección cuando sea necesario.
Crear colección
Puede crear una colección de cualquiera de las siguientes maneras:
Configuración rápida
De esta manera, puede crear una colección simplemente dándole un nombre y especificando el número de dimensiones de las incrustaciones vectoriales que se almacenarán en esta colección. Para más información, consulte Configuración rápida.
Configuración personalizada
En lugar de dejar que In Milvus decida casi todo para su colección, puede determinar el esquema y los parámetros de índice de la colección por su cuenta. Para obtener más información, consulte Configuración personalizada.
Configuración rápida
Con el gran salto en la industria de la IA como telón de fondo, la mayoría de los desarrolladores sólo necesitan una colección sencilla pero dinámica para empezar. Milvus permite una configuración rápida de dicha colección con sólo tres argumentos:
Nombre de la colección a crear,
Dimensión de las incrustaciones vectoriales a insertar, y
Tipo de métrica utilizada para medir las similitudes entre las incrustaciones vectoriales.
Para una configuración rápida, utilice el método create_collection() de la clase MilvusClient para crear una colección con el nombre y la dimensión especificados.
Para una configuración rápida, utilice el método createCollection() de la clase MilvusClientV2 para crear una colección con el nombre y la dimensión especificados.
Para una configuración rápida, utilice el método createCollection() de la clase MilvusClient para crear una colección con el nombre y la dimensión especificados.
Para una configuración rápida, utilice el método CreateCollection() en una instancia de la interfaz Client utilizando el método NewClient() para crear una colección con el nombre y la dimensión especificados.
Para una configuración rápida, utilice el POST /v2/vectordb/collections/create para crear una colección con el nombre y la dimensión especificados.
La colección generada en el código anterior contiene sólo dos campos: id (como clave primaria) y vector (como campo vectorial), con las opciones auto_id y enable_dynamic_field activadas por defecto.
auto_id
Activar esta configuración garantiza que la clave primaria se incremente automáticamente. No es necesario proporcionar manualmente claves primarias durante la inserción de datos.
enable_dynamic_field
Cuando está activada, todos los campos, excluidos id y vector en los datos que se van a insertar, se tratan como campos dinámicos. Estos campos adicionales se guardan como pares clave-valor dentro de un campo especial denominado $meta. Esta función permite incluir campos adicionales durante la inserción de datos.
La colección indexada y cargada automáticamente a partir del código proporcionado está lista para la inserción inmediata de datos.
Configuración personalizada
En lugar de dejar que Milvus decida casi todo para su colección, puede determinar el esquema y los parámetros de indexación de la colección por su cuenta.
Paso 1: Configurar el esquema
Un esquema define la estructura de una colección. Dentro del esquema, tiene la opción de activar o desactivar enable_dynamic_field, añadir campos predefinidos y establecer atributos para cada campo. Para obtener una explicación detallada del concepto y de los tipos de datos disponibles, consulte Explicación del esquema.
Para configurar un esquema, utilice create_schema() para crear un objeto de esquema y add_field() para añadir campos al esquema.
Para configurar un esquema, utilice createSchema() para crear un objeto de esquema y addField() para añadir campos al esquema.
Para configurar un esquema, utilice entity.NewSchema() para crear un objeto de esquema y schema.WithField() para añadir campos al esquema.
Para configurar un esquema, debe definir un objeto JSON que siga el formato de esquema que se muestra en la página de referencia del punto final de la API POST /v2/vectordb/collections/create API endpoint reference page.
Determina si el campo primario se incrementa automáticamente. Si se establece en True, el campo primario se incrementa automáticamente. En este caso, el campo primario no debe incluirse en los datos a insertar para evitar errores. Los IDs autogenerados tienen una longitud fija y no pueden ser alterados.
enable_dynamic_field
Determina si Milvus guarda los valores de los campos no definidos en un campo dinámico si los datos que se insertan en la colección de destino incluyen campos que no están definidos en el esquema de la colección. Cuando se establece en True, Milvus creará un campo llamado $meta para almacenar cualquier campo no definido y sus valores de los datos que se insertan.
field_name
El nombre del campo.
datatype
El tipo de datos del campo. Para obtener una lista de los tipos de datos disponibles, consulte Tipo de datos.
is_primary
Si el campo actual es el campo primario de una colección. Cada colección sólo tiene un campo primario. Un campo primario debe ser del tipo DataType.INT64 o del tipo DataType.VARCHAR.
dim
La dimensión de las incrustaciones vectoriales. Es obligatorio para un campo de tipo DataType.FLOAT_VECTOR, DataType.BINARY_VECTOR, DataType.FLOAT16_VECTOR o DataType.BFLOAT16_VECTOR. Si utiliza DataType.SPARSE_FLOAT_VECTOR, omita este parámetro.
Parámetro
Descripción
fieldName
Nombre del campo.
dataType
Tipo de datos del campo. Para obtener una lista de los tipos de datos disponibles, consulte TipoDatos.
isPrimaryKey
Si el campo actual es el campo primario de una colección. Cada colección sólo tiene un campo primario. Un campo primario debe ser del tipo DataType.Int64 o del tipo DataType.VarChar.
autoID
Si permite que el campo primario se incremente automáticamente. Si se establece en true, el campo primario se incrementa automáticamente. En este caso, el campo primario no debe incluirse en los datos a insertar para evitar errores.
dimension
La dimensión de las incrustaciones vectoriales. Es obligatorio para un campo de tipo DataType.FloatVector, DataType.BinaryVector, DataType.Float16Vector o DataType.BFloat16Vector.
Parámetro
Descripción
name
Nombre del campo.
data_type
Tipo de datos del campo. Para obtener una enumeración de todos los tipos de datos disponibles, consulte TipoDatos.
is_primary_key
Si el campo actual es el campo primario de una colección. Cada colección sólo tiene un campo primario. Un campo primario debe ser del tipo DataType.INT64 o del tipo DataType.VARCHAR.
auto_id
Si el campo primario se incrementa automáticamente al insertar datos en esta colección. El valor por defecto es False. Si se establece en True, el campo primario se incrementa automáticamente. Omita este parámetro si necesita configurar una colección con un esquema personalizado.
dim
Dimensionalidad del campo de la colección que contiene las incrustaciones vectoriales. El valor debe ser un número entero mayor que 1 y suele estar determinado por el modelo que se utiliza para generar incrustaciones vectoriales.
Parámetro
Descripción
WithName()
Nombre del campo.
WithDataType()
Tipo de datos del campo.
WithIsPrimaryKey()
Si el campo actual es el campo primario de una colección. Cada colección sólo tiene un campo primario. Un campo primario debe ser del tipo entity.FieldTypeInt64 o entity.FieldTypeVarChar.
WithIsAutoID()
Si el campo primario se incrementa automáticamente al insertar datos en esta colección. El valor por defecto es false. Si se establece en true, el campo primario se incrementa automáticamente. Omita este parámetro si necesita configurar una colección con un esquema personalizado.
WithDim()
La dimensionalidad del campo de la colección que contiene las incrustaciones vectoriales. El valor debe ser un número entero mayor que 1 y suele estar determinado por el modelo que se utiliza para generar incrustaciones vectoriales.
Parámetro
Descripción
fieldName
El nombre del campo que se va a crear en la colección de destino.
dataType
El tipo de datos de los valores del campo.
isPrimary
Si el campo actual es el campo primario. Si se establece en True, el campo actual será el campo primario.
elementTypeParams
Parámetros de campo adicionales.
dim
Un parámetro opcional para los campos FloatVector o BinaryVector que determina la dimensión del vector.
Paso 2: Configurar parámetros de índice
Los parámetros de índice dictan cómo Milvus organiza sus datos dentro de una colección. Puede adaptar el proceso de indexación para campos específicos ajustando sus metric_type y index_type. Para el campo vectorial, tiene la flexibilidad de seleccionar COSINE, L2, IP, HAMMING, o JACCARD como metric_type, dependiendo del tipo de vectores con los que esté trabajando. Para más información, consulte Métricas de similitud.
Para configurar los parámetros de índice, utilice prepare_index_params() para preparar los parámetros del índice y add_index() para añadir el índice.
Para configurar parámetros de índice, utilice IndexParam.
Para configurar parámetros de índice, utilice createIndex().
Para configurar los parámetros del índice, utilice CreateIndex().
Para configurar parámetros de índice, debe definir un objeto JSON que siga el formato de parámetros de índice que se muestra en la página de referencia del punto final de la API POST /v2/vectordb/collections/create página de referencia del punto final de la API.
El nombre del archivo de destino al que se aplica este objeto.
index_type
El nombre del algoritmo utilizado para ordenar los datos en el campo específico. Para conocer los algoritmos aplicables, consulte Índice en memoria e Índice en disco.
metric_type
El algoritmo que se utiliza para medir la similitud entre vectores. Los valores posibles son IP, L2, COSINE, JACCARD, HAMMING. Sólo está disponible cuando el campo especificado es un campo vectorial. Para más información, consulte Índices soportados en Milvus.
params
Los parámetros de ajuste para el tipo de índice especificado. Para más información sobre posibles claves y rangos de valores, consulte Índice en memoria.
Parámetro
Descripción
fieldName
El nombre del campo de destino al que se aplica este objeto IndexParam.
indexType
El nombre del algoritmo utilizado para ordenar los datos en el campo específico. Para conocer los algoritmos aplicables, consulte Índice en memoria e Índice en disco.
metricType
La métrica de distancia que se utilizará para el índice. Los valores posibles son IP, L2, COSINE, JACCARD, HAMMING.
Nombre del campo de destino sobre el que se va a crear un índice.
index_type
El nombre del algoritmo utilizado para ordenar los datos en el campo específico. Para conocer los algoritmos aplicables, consulte Índice en memoria e Índice en disco.
metric_type
El algoritmo que se utiliza para medir la similitud entre vectores. Los valores posibles son IP, L2, COSINE, JACCARD, HAMMING. Sólo está disponible cuando el campo especificado es un campo vectorial. Para más información, consulte Índices soportados en Milvus.
params
Los parámetros de ajuste para el tipo de índice especificado. Para más información sobre posibles claves y rangos de valores, consulte Índice en memoria.
Parámetro
Descripción
index_type
El nombre del algoritmo utilizado para organizar los datos en el campo específico. Para conocer los algoritmos aplicables, consulte Índice en memoria e Índice en disco.
metric_type
El algoritmo que se utiliza para medir la similitud entre vectores. Los valores posibles son IP, L2, COSINE, JACCARD, HAMMING. Sólo está disponible cuando el campo especificado es un campo vectorial. Para más información, consulte Índices soportados en Milvus.
nlist
Número de unidades de cluster. Las unidades de cluster se utilizan en los índices basados en IVF (Archivo Invertido) en Milvus. Para IVF_FLAT, el índice divide los datos del vector en unidades de cluster `nlist`, y luego compara las distancias entre el vector de entrada objetivo y el centro de cada cluster1. Debe estar entre 1 y 65536.
Parámetro
Descripción
fieldName
El nombre del campo de destino sobre el que se va a crear un índice.
indexName
El nombre del índice que se va a crear. El valor por defecto es el nombre del campo de destino.
metricType
El algoritmo que se utiliza para medir la similitud entre vectores. Los valores posibles son IP, L2, COSINE, JACCARD, HAMMING. Sólo está disponible cuando el campo especificado es un campo vectorial. Para más información, consulte Índices soportados en Milvus.
params
El tipo de índice y los ajustes relacionados. Para más información, consulte Índice en memoria.
params.index_type
El tipo de índice a crear.
params.nlist
El número de unidades de cluster. Esto se aplica a los tipos de índice relacionados con IVF.
El fragmento de código anterior muestra cómo configurar los parámetros de índice para un campo vectorial y un campo escalar, respectivamente. Para el campo vectorial, establezca tanto el tipo métrico como el tipo de índice. Para un campo escalar, establezca sólo el tipo de índice. Se recomienda crear un índice para el campo vectorial y cualquier campo escalar que se utilice con frecuencia para filtrar.
Paso 3: Crear la colección
Tiene la opción de crear una colección y un archivo de índice por separado o crear una colección con el índice cargado simultáneamente en el momento de la creación.
Utilice create_collection( ) para crear una colección con los parámetros de esquema e índice especificados y get_load_state() para comprobar el estado de carga de la colección.
Utilice createCollection() para crear una colección con los parámetros de esquema e índice especificados y getLoadState() para comprobar el estado de carga de la colección.
Utilice createCollection() para crear una colección con los parámetros de esquema e índice especificados y getLoadState() para comprobar el estado de carga de la colección.
Crear una colección con el índice cargado simultáneamente a la creación.
# 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//
La colección creada anteriormente se carga automáticamente. Para obtener más información sobre cómo cargar y liberar una colección, consulte Cargar y liberar colección.
Cree una colección y un archivo de índice por separado.
# 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
La colección creada anteriormente no se carga automáticamente. Puede crear un índice para la colección de la siguiente manera. La creación de un índice para la colección de forma independiente no carga automáticamente la colección. Para más detalles, consulte Cargar y liberar colección.
Parámetro
Descripción
collection_name
El nombre de la colección.
schema
El esquema de esta colección. Establecerlo como Ninguno indica que esta colección se creará con la configuración predeterminada. Para configurar una colección con un esquema personalizado, debe crear un objeto CollectionSchema y referenciarlo aquí. En este caso, Milvus ignora todos los demás parámetros relacionados con el esquema que se incluyen en la solicitud.
index_params
Los parámetros para construir el índice sobre el campo vectorial en esta colección. Para configurar una colección con un esquema personalizado y cargar automáticamente la colección en memoria, necesita crear un objeto IndexParams y referenciarlo aquí. Debería añadir al menos un índice para el campo vectorial en esta colección. También puedes omitir este parámetro si prefieres configurar los parámetros del índice más adelante.
Parámetro
Descripción
collectionName
El nombre de la colección.
collectionSchema
El esquema de esta colección. Dejarlo vacío indica que esta colección se creará con la configuración por defecto. Para configurar una colección con un esquema personalizado, debe crear un objeto CollectionSchema y referenciarlo aquí.
indexParams
Los parámetros para construir el índice sobre el campo vectorial en esta colección. Para configurar una colección con un esquema personalizado y cargar automáticamente la colección en memoria, cree un objeto IndexParams con una lista de objetos IndexParam y haga referencia a él aquí.
Parámetro
Descripción
collection_name
El nombre de la colección.
fields
Los campos de la colección.
index_params
Los parámetros de índice de la colección a crear.
Parámetro
Descripción
schema.CollectionName
El nombre de la colección.
schema
El esquema de la colección.
index_params
Los parámetros de índice de la colección que se va a crear.
Parámetro
Descripción
collectionName
El nombre de la colección.
schema
El esquema es responsable de organizar los datos en la colección de destino. Un esquema válido debe tener múltiples campos, que deben incluir una clave primaria, un campo vectorial y varios campos escalares.
schema.autoID
Si permite que el campo primario se incremente automáticamente. Si se establece en True, el campo primario se incrementa automáticamente. En este caso, el campo primario no debe incluirse en los datos a insertar para evitar errores. Establezca este parámetro en el campo con is_primary a True.
schema.enableDynamicField
Si permite utilizar el campo reservado $meta para contener campos no definidos por el esquema en pares clave-valor.
fields
Una lista de objetos de campo.
fields.fieldName
El nombre del campo a crear en la colección de destino.
fields.dataType
El tipo de datos de los valores del campo.
fields.isPrimary
Si el campo actual es el campo primario. Si se establece en True, el campo actual será el campo primario.
fields.elementTypeParams
Parámetros de campo adicionales.
fields.elementTypeParams.dim
Un parámetro opcional para los campos FloatVector o BinaryVector que determina la dimensión del vector.
La colección creada anteriormente no se carga automáticamente. Puede crear un índice para la colección de la siguiente manera. La creación de un índice para la colección de forma independiente no carga automáticamente la colección. Para más detalles, consulte Cargar y liberar colección.
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
Un objeto IndexParams que contiene una lista de objetos IndexParam.
Parámetro
Descripción
collectionName
El nombre de la colección.
indexParams
Una lista de objetos IndexParam.
Parámetro
Descripción
collection_name
El nombre de la colección.
field_name
El nombre del campo en el que crear un índice.
index_type
El nombre del algoritmo utilizado para ordenar los datos en el campo específico. Para conocer los algoritmos aplicables, consulte Índice en memoria e Índice en disco.
metric_type
El algoritmo que se utiliza para medir la similitud entre vectores. Los valores posibles son IP, L2, COSINE, JACCARD, HAMMING. Sólo está disponible cuando el campo especificado es un campo vectorial. Para más información, consulte Índices soportados en Milvus.
params
Los parámetros de ajuste para el tipo de índice especificado. Para más información sobre posibles claves y rangos de valores, consulte Índice en memoria.
Parámetro
Descripción
collName
El nombre de la colección.
fieldName
El nombre del campo en el que crear un índice.
idx
El nombre del algoritmo utilizado para ordenar los datos en el campo específico. Para conocer los algoritmos aplicables, consulte Índice en memoria e Índice en disco.
async
Si esta operación es asíncrona.
opts
Los parámetros de ajuste para el tipo de índice especificado. Puede incluir varias `entity.IndexOption` en esta solicitud. Para obtener más información sobre las posibles claves y rangos de valores, consulte Índice en memoria.
Parámetro
Descripción
collectionName
El nombre de la colección.
indexParams
Los parámetros de índice para la colección que se va a crear.
indexParams.metricType
El tipo de métrica de similitud utilizado para crear el índice. El valor por defecto es COSINE.
indexParams.fieldName
El nombre del campo de destino sobre el que se va a crear un índice.
indexParams.indexName
El nombre del índice que se va a crear; el valor por defecto es el nombre del campo de destino.
indexParams.indexConfig.index_type
El tipo de índice a crear.
indexParams.indexConfig.nlist
El número de unidades de cluster. Esto se aplica a los tipos de índice relacionados con FIV.
Ver colecciones
Para comprobar los detalles de una colección existente, utilice describe_collection().
Para comprobar los detalles de una colección existente, utilice describeCollection().
Para comprobar los detalles de una colección existente, utilice describeCollection().
Para comprobar los detalles de una colección existente, utilice describe_coleccion().
# 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 el proceso de carga de una colección, Milvus carga el fichero índice de la colección en memoria. A la inversa, al liberar una colección, Milvus descarga el fichero índice de la memoria. Antes de realizar búsquedas en una colección, asegúrese de que la colección está cargada.
Cargar una colección
Para cargar una colección, utilice el método load_collection() especificando el nombre de la colección. También puede configurar replica_number para determinar cuántas réplicas en memoria de segmentos de datos se crearán en los nodos de consulta cuando se cargue la colección.
Milvus Standalone: El valor máximo permitido para replica_number es 1.
# 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
Cargar una colección parcialmente (Vista previa pública)
Esta función se encuentra actualmente en fase de vista previa pública. La API y la funcionalidad pueden cambiar en el futuro.
Al recibir su solicitud de carga, Milvus carga en memoria todos los índices de los campos vectoriales y todos los datos de los campos escalares. Si algunos campos no van a estar implicados en búsquedas y consultas, puede excluirlos de la carga para reducir el uso de memoria, mejorando el rendimiento de la búsqueda.
# 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>"# }
Tenga en cuenta que sólo los campos enumerados en load_fields pueden utilizarse como condiciones de filtrado y campos de salida en búsquedas y consultas. Siempre debe incluir la clave primaria en la lista. Los nombres de campo excluidos de la carga no estarán disponibles para el filtrado o la salida.
Puede utilizar skip_load_dynamic_field=True para omitir la carga del campo dinámico. Milvus trata el campo dinámico como un único campo, por lo que todas las claves del campo dinámico se incluirán o excluirán juntas.
Liberar una colección
Para liberar una colección, utilice el método release_collection() especificando el nombre de la colección.
Para liberar una colección, utilice el método releaseCollection() especificando el nombre de la colección.
Para liberar una colección, utilice el método releaseCollection() especificando el nombre de la colección.
Para liberar una colección, utilice el método ReleaseCollection() especificando el nombre de la colección.
Puede asignar alias a las colecciones para que tengan más sentido en un contexto específico. Puede asignar varios alias a una colección, pero varias colecciones no pueden compartir un alias.
Crear alias
Para crear alias, utilice el método create_alias() especificando el nombre de la colección y el alias.
Para crear alias, utilice el método createAlias() especificando el nombre de la colección y el alias.
Para crear alias, utilice el método createAlias() especificando el nombre de la colección y el alias.
Para crear alias de una colección, puede utilizar el punto final de la API POST /v2/vectordb/aliases/create punto final de la API.
Puede establecer propiedades para una colección, como ttl.seconds y mmap.enabled. Para más información, consulte set_properties().
Los fragmentos de código de esta sección utilizan el módulo PyMilvus ORM para interactuar con Milvus. Los fragmentos de código con el nuevo SDK MilvusClient estarán disponibles en breve.
Establecer TTL
Establece el tiempo de vida (TTL) para los datos de la colección, que especifica cuánto tiempo deben conservarse los datos antes de que se eliminen automáticamente.
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
}
)
Establecer MMAP
Configure la propiedad de asignación de memoria (MMAP) para la colección, que determina si los datos se asignan a la memoria para mejorar el rendimiento de la consulta. Para obtener más información, consulte Configurar la asignación de memoria.
Antes de configurar la propiedad MMAP, libere primero la colección. De lo contrario, se producirá un error.
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 una colecta
Si una colección ya no es necesaria, puede eliminarla.
Para eliminar una colección, utilice el método drop_collection() especificando el nombre de la colección.
Para eliminar una colección, utilice el método dropCollection() especificando el nombre de la colección.
Para eliminar una colección, utilice el método dropCollection() especificando el nombre de la colección.
Para eliminar una colección, utilice el método DropCollection() especificando el nombre de la colección.
// 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())
}