Sammlungsfeld bearbeiten

Sie können die Eigenschaften eines Sammlungsfelds ändern, um Spaltenbeschränkungen anzupassen oder strengere Regeln zur Datenintegrität durchzusetzen.

Diese Seite behandelt Änderungen an Feldeigenschaften, nicht jedoch Änderungen an der Schemastruktur, wie das Hinzufügen oder Entfernen von Feldern. Informationen zum Hinzufügen von Skalarfeldern oder zum Entfernen von Feldern aus einer bestehenden Sammlung finden Sie unter „Schema einer Sammlung ändern“.

  • Jede Sammlung besteht aus nur einem Primärfeld. Sobald dieses bei der Erstellung der Sammlung festgelegt wurde, können Sie das Primärfeld nicht mehr ändern und auch seine Eigenschaften nicht mehr anpassen.

  • Jede Sammlung kann nur einen Partitionsschlüssel haben. Sobald dieser bei der Erstellung der Sammlung festgelegt wurde, können Sie den Partitionsschlüssel nicht mehr ändern.

VarChar-Feld ändern

Ein VarChar-Feld verfügt über eine Eigenschaft namens „ max_length “, die die maximale Anzahl an Zeichen begrenzt, die die Feldwerte enthalten dürfen. Sie können die Eigenschaft „ max_length “ ändern.

Das folgende Beispiel geht davon aus, dass die Sammlung ein VarChar-Feld namens „ varchar “ enthält, und legt dessen Eigenschaft „ max_length “ fest.

from pymilvus import MilvusClient

client = MilvusClient(
    uri="http://localhost:19530",
    token="root:Milvus"
)

client.alter_collection_field(
    collection_name="my_collection",
    field_name="varchar",
    field_params={
        "max_length": 1024
    }
)
import io.milvus.v2.client.MilvusClientV2;
import io.milvus.v2.client.ConnectConfig;
import io.milvus.v2.service.collection.request.*;

ConnectConfig config = ConnectConfig.builder()
        .uri("http://localhost:19530")
        .token("root:Milvus")
        .build();
MilvusClientV2 client = new MilvusClientV2(config);

client.alterCollectionField(AlterCollectionFieldReq.builder()
        .collectionName("my_collection")
        .fieldName("varchar")
        .property("max_length", "1024")
        .build());
await client.alterCollectionFieldProperties({
  collection_name: LOAD_COLLECTION_NAME,
  field_name: 'varchar',
  properties: { max_length: 1024 },
});
import (
    "context"
    "fmt"

    "github.com/milvus-io/milvus/client/v2/entity"
    "github.com/milvus-io/milvus/client/v2/milvusclient"
    "github.com/milvus-io/milvus/pkg/v2/common"
)

ctx, cancel := context.WithCancel(context.Background())
defer cancel()

milvusAddr := "localhost:19530"

client, err := milvusclient.New(ctx, &milvusclient.ClientConfig{
    Address: milvusAddr,
})
if err != nil {
    fmt.Println(err.Error())
    // handle error
}
defer client.Close(ctx)

err = client.AlterCollectionFieldProperty(ctx, milvusclient.NewAlterCollectionFieldPropertiesOption(
    "my_collection", "varchar").WithProperty(common.MaxLengthKey, 1024))
if err != nil {
    fmt.Println(err.Error())
    // handle error
}
# restful
curl --request POST \
--url "${CLUSTER_ENDPOINT}/v2/collections/fields/alter_properties" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Content-Type: application/json" \
--data "{
    "collectionName": "my_collection",
    "field_name": "varchar",
    "properties": {
        "max_length": "1024"
    }
}"

ARRAY-Feld ändern

Ein Array-Feld verfügt über zwei Eigenschaften: „ element_type “ und „ max_capacity “. Erstere legt den Datentyp der Elemente im Array fest, während letztere die maximale Anzahl der Elemente im Array begrenzt. Sie können nur die Eigenschaft „ max_capacity “ ändern.

Das folgende Beispiel geht davon aus, dass die Sammlung ein Array-Feld namens „ array “ enthält, und legt dessen Eigenschaft „ max_capacity “ fest.

client.alter_collection_field(
    collection_name="my_collection",
    field_name="array",
    field_params={
        "max_capacity": 64
    }
)
client.alterCollectionField(AlterCollectionFieldReq.builder()
        .collectionName("my_collection")
        .fieldName("array")
        .property("max_capacity", "64")
        .build());
await client.alterCollectionFieldProperties({
  collection_name: "my_collection",
  field_name: 'array',
  properties: { 
      max_capacity: 64 
  }
});
err = client.AlterCollectionFieldProperty(ctx, milvusclient.NewAlterCollectionFieldPropertiesOption(
    "my_collection", "array").WithProperty(common.MaxCapacityKey, 64))
if err != nil {
    fmt.Println(err.Error())
    // handle error
}
# restful
curl --request POST \
--url "${CLUSTER_ENDPOINT}/v2/collections/fields/alter_properties" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Content-Type: application/json" \
--data "{
    "collectionName": "my_collection",
    "field_name": "array",
    "properties": {
        "max_capacity": "64"
    }
}"

Einstellungen für „mmap“ auf Feldebene ändern

Memory Mapping (Mmap) ermöglicht den direkten Speicherzugriff auf große Dateien auf der Festplatte, sodass Milvus Indizes und Daten sowohl im Arbeitsspeicher als auch auf Festplatten speichern kann. Dieser Ansatz trägt dazu bei, die Datenplatzierungsrichtlinie basierend auf der Zugriffshäufigkeit zu optimieren und die Speicherkapazität für Sammlungen zu erweitern, ohne die Suchleistung zu beeinträchtigen.

Das folgende Beispiel geht davon aus, dass die Sammlung ein Feld namens „ doc_chunk “ enthält, und legt dessen Eigenschaft „ mmap_enabled “ fest.

client.alter_collection_field(
    collection_name="my_collection",
    field_name="doc_chunk",
    field_params={"mmap.enabled": True}
)
client.alterCollectionField(AlterCollectionFieldReq.builder()
        .collectionName("my_collection")
        .fieldName("doc_chunk")
        .property("mmap.enabled", "True")
        .build());
await client.alterCollectionProperties({
  collection_name: "my_collection",
  field_name: 'doc_chunk',
  properties: { 
      'mmap.enabled': true, 
  }
});
err = client.AlterCollectionFieldProperty(ctx, milvusclient.NewAlterCollectionFieldPropertiesOption(
    "my_collection", "doc_chunk").WithProperty(common.MmapEnabledKey, true))
if err != nil {
    fmt.Println(err.Error())
    // handle error
}
# restful
curl --request POST \
--url "${CLUSTER_ENDPOINT}/v2/collections/fields/alter_properties" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Content-Type: application/json" \
--data "{
    "collectionName": "my_collection",
    "field_name": "doc_chunk",
    "properties": {
        "mmap.enabled": True
    }
}"

Übersetzt vonDeepL

Verwaltetes Milvus kostenlos testen

Zilliz Cloud ist unkompliziert, basiert auf Milvus und ist 10-mal schneller.

Loslegen
Feedback

War diese Seite hilfreich?