🚀 免費嘗試 Zilliz Cloud,完全托管的 Milvus,體驗速度提升 10 倍!立即嘗試

milvus-logo
LFAI
主頁
  • 使用者指南
  • Home
  • Docs
  • 使用者指南

  • 模式與資料欄位

  • 主要欄位與自動識別

主要欄位與自動識別

主字段唯一識別一個實體。本頁面介紹如何添加兩種不同數據類型的主字段,以及如何啟用 Milvus 自動分配主字段值。

概述

在一個集合中,每個實體的主鍵應該是全局唯一的。當新增主字段時,你需要明確地設定它的資料類型為VARCHARINT64。將其資料類型設定為INT64表示主索引鍵應該是類似12345 的整數;將其資料類型設定為VARCHAR表示主索引鍵應該是類似my_entity_1234 的字串。

你也可以啟用AutoID來使 Milvus 自動為傳入的實體分配主鍵。一旦你在你的集合中啟用了AutoID,在插入實體時不要包含主鍵。

集合中的主欄位沒有預設值,也不能為空。

使用 Int64 主鍵

要使用 Int64 類型的主鍵,您需要設定datatypeDataType.INT64 ,並設定is_primarytrue 。如果您也需要 Milvus 為進入的實體分配主鍵,也請設定auto_idtrue

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

免費嘗試托管的 Milvus

Zilliz Cloud 無縫接入,由 Milvus 提供動力,速度提升 10 倍。

開始使用
反饋

這個頁面有幫助嗎?