🚀 Попробуйте Zilliz Cloud, полностью управляемый Milvus, бесплатно — ощутите 10-кратное увеличение производительности! Попробовать сейчас>

milvus-logo
LFAI
Главная
  • Руководство пользователя
  • Home
  • Docs
  • Руководство пользователя

  • Схема и поля данных

  • Основное поле и автоидентификатор

Первичное поле и автоидентификатор

Первичное поле уникально идентифицирует сущность. На этой странице описано, как добавить первичное поле в два разных типа данных и как включить в Milvus функцию автоматического присвоения значений первичного поля.

Обзор

В коллекции первичный ключ каждой сущности должен быть глобально уникальным. При добавлении первичного поля необходимо явно установить тип данных VARCHAR или INT64. Установка типа данных INT64 означает, что первичными ключами должны быть целые числа, как на 12345; установка типа данных VARCHAR означает, что первичными ключами должны быть строки, как на my_entity_1234.

Вы также можете включить AutoID, чтобы Milvus автоматически выделял первичные ключи для входящих сущностей. После включения AutoID в коллекции не включайте первичные ключи при вставке сущностей.

Первичное поле в коллекции не имеет значения по умолчанию и не может быть null.

Использование первичных ключей Int64

Чтобы использовать первичные ключи типа Int64, вам нужно установить datatype на DataType.INT64 и is_primary на true. Если вам также нужно, чтобы Milvus выделял первичные ключи для входящих сущностей, также установите auto_id на 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
    ]
}"

Использование первичных ключей VarChar

Чтобы использовать первичные ключи VarChar, помимо изменения значения параметра data_type на DataType.VARCHAR, необходимо также установить параметр max_length для поля.

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
    }
}"

Попробуйте Managed Milvus бесплатно

Zilliz Cloud работает без проблем, поддерживается Milvus и в 10 раз быстрее.

Начать
Обратная связь

Была ли эта страница полезной?