milvus-logo
LFAI
Home
  • Guía del usuario

Campo primario y AutoID

El campo primario identifica de forma única a una entidad. Esta página presenta cómo añadir el campo primario de dos tipos de datos diferentes y cómo permitir que Milvus asigne automáticamente valores de campo primario.

Visión general

En una colección, la clave primaria de cada entidad debe ser globalmente única. Al añadir el campo primario, debe establecer explícitamente su tipo de datos como VARCHAR o INT64. Establecer su tipo de datos a INT64 indica que las claves primarias deben ser un entero similar a 12345; Establecer su tipo de datos a VARCHAR indica que las claves primarias deben ser una cadena similar a my_entity_1234.

También puede habilitar AutoID para hacer que Milvus asigne automáticamente claves primarias para las entidades entrantes. Una vez que haya habilitado AutoID en su colección, no incluya claves primarias al insertar entidades.

El campo primario en una colección no tiene un valor por defecto y no puede ser nulo.

Utilizar claves primarias Int64

Para utilizar claves primarias de tipo Int64, debe establecer datatype en DataType.INT64 y is_primary en true. Si también necesita que Milvus asigne las claves primarias para las entidades entrantes, establezca auto_id en true.

from pymilvus import MilvusClient, DataType

schema = MilvusClient.create_schema()

schema.add_field(
    field_name="my_id",
    datatype=DataType.INT64,
    # highlight-start
    is_primary=True,
    auto_id=True,
    # highlight-end
)

import io.milvus.v2.common.DataType;
import io.milvus.v2.service.collection.request.AddFieldReq; 
import io.milvus.v2.service.collection.request.CreateCollectionReq;

CreateCollectionReq.CollectionSchema schema = client.createSchema();

schema.addField(AddFieldReq.builder()
        .fieldName("my_id")
        .dataType(DataType.Int64)
        // highlight-start
        .isPrimaryKey(true)
        .autoID(true)
        // highlight-end
        .build());
);

import { DataType } from "@zilliz/milvus2-sdk-node";

const schema = [
  {
    name: "pk",
    description: "ID field",
    data_type: DataType.VARCHAR,
    is_primary_key: true,
    max_length: 100,
  },
];

// Go 缺失

export primaryField='{
    "fieldName": "my_id",
    "dataType": "Int64",
    "isPrimary": true
}'

export schema="{
    \"autoID\": true,
    \"fields\": [
        $primaryField
    ]
}"

Utilizar claves primarias VarChar

Para utilizar claves primarias VarChar, además de cambiar el valor del parámetro data_type a DataType.VARCHAR, también necesita establecer el parámetro max_length para el campo.

schema.add_field(
    field_name="my_id",
    datatype=DataType.VARCHAR,
    # highlight-start
    is_primary=True,
    auto_id=True,
    max_length=512,
    # highlight-end
)

import io.milvus.v2.common.DataType;
import io.milvus.v2.service.collection.request.AddFieldReq; 

schema.addField(AddFieldReq.builder()
        .fieldName("my_id")
        .dataType(DataType.VarChar)
        // highlight-start
        .isPrimaryKey(true)
        .autoID(true)
        .maxLength(512)
        // highlight-end
        .build());

schema.push({
    name: "my_id",
    data_type: DataType.VarChar,
    // highlight-start
    is_primary_key: true,
    autoID: true,
    maxLength: 512
    // highlight-end
});

// Go 缺失

export primaryField='{
    "fieldName": "my_id",
    "dataType": "VarChar",
    "isPrimary": true
}'

export schema="{
    \"autoID\": true,
    \"fields\": [
        $primaryField
    ],
    \"params\": {
        \"max_length\": 512
    }
}"

Traducido porDeepL

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
Feedback

¿Fue útil esta página?