Creazione di una collezione
Questa sezione descrive come creare una collezione in Milvus.
Una collezione è composta da una o più partizioni. Quando si crea una nuova collezione, Milvus crea automaticamente una partizione predefinita chiamata _default
.
Nell'esempio seguente viene creata una collezione chiamata book
con due shard. Essa include un campo chiave primaria chiamato book_id
, un campo scalare INT64
chiamato word_count
e un campo vettoriale a due dimensioni in virgola mobile chiamato book_intro
. Le applicazioni effettive possono utilizzare dimensioni vettoriali più alte rispetto a quelle nell'esempio.
Definizione dello Schema della Collezione
La collezione da creare deve includere un campo chiave primaria e un campo vettoriale. Il campo chiave primaria supporta i tipi di dati INT64 e VarChar.
Suggerimento: la definizione dello schema della collezione è simile alla definizione di una struttura di tabella in MYSQL.
Prima, preparare i parametri necessari, inclusi gli schemi dei campi, gli schemi delle collezioni e i nomi delle collezioni.
Prima di definire lo schema della collezione, creare uno schema per ciascun campo nella collezione. Per semplificare la complessità dell'inserimento dei dati, Milvus consente di specificare un valore predefinito per ciascun campo scalare (ad eccezione del campo chiave primaria). Ciò significa che se durante l'inserimento dei dati viene lasciato vuoto un campo, verrà utilizzato il valore predefinito configurato per questo campo durante la creazione dello schema del campo.
var (
collectionName = "book"
)
schema := &entity.Schema{
CollectionName: collectionName,
Description: "Ricerca di libri di prova",
Fields: []*entity.Field{
{
Name: "book_id",
DataType: entity.FieldTypeInt64,
PrimaryKey: true,
AutoID: false,
},
{
Name: "word_count",
DataType: entity.FieldTypeInt64,
PrimaryKey: false,
AutoID: false,
},
{
Name: "book_intro",
DataType: entity.FieldTypeFloatVector,
TypeParams: map[string]string{
"dim": "2",
},
},
},
EnableDynamicField: true
}
Tipo | Parametro | Descrizione | Opzioni |
---|---|---|---|
entity.Schema |
CollectionName |
Nome della collezione da creare | N/A |
Description |
Descrizione della collezione da creare | N/A | |
AutoID |
Interruttore utilizzato per abilitare o disabilitare l'assegnazione automatica dell'ID (chiave primaria) | True o False |
|
Fields |
Schemi dei campi nella collezione da creare. Per ulteriori informazioni, vedere lo schema | N/A | |
EnableDynamicField |
Se abilitare lo schema dinamico. Per ulteriori informazioni sullo schema dinamico, consultare la Guida utente sullo Schema dinamico e la Gestione delle collezioni | N/A | |
entity.Field |
Name |
Nome del campo da creare | N/A |
PrimaryKey |
Se questo campo è una chiave primaria. Richiesto per i campi chiave primaria | N/A | |
AutoID |
Se il valore del campo è auto-incrementato. Richiesto per i campi chiave primaria | N/A | |
Description |
Descrizione del campo | N/A | |
DataType |
Tipo di dato del campo da creare | Per i campi chiave primaria: - entity.FieldTypeInt64(numpy.int64) - entity.FieldTypeVarChar(VARCHAR) Per i campi scalari: - entity.FieldTypeBool(Boolean) - entity.FieldTypeInt8(numpy.int8) - entity.FieldTypeInt16(numpy.int16) - entity.FieldTypeInt32(numpy.int32) - entity.FieldTypeInt64(numpy.int64) - entity.FieldTypeFloat(numpy.float32) - entity.FieldTypeDouble(numpy.double) - entity.FieldTypeVarChar(VARCHAR) Per i campi vettoriali: - entity.FieldTypeBinaryVector (Vettore binario) - entity.FieldTypeFloatVector (Vettore float) |
|
TypeParams |
Mappatura alla stringa che imposta i parametri per tipi di dati specifici | N/A | |
IndexParams |
Mappatura alla stringa che imposta i parametri dell'indice della collezione | N/A | |
IsDynamic |
Se questo campo abilita lo schema dinamico | N/A | |
IsPartitionKey |
Se questo campo funge da chiave di partizione | N/A |
Creare una collezione in base alla struttura definita
Successivamente, creare una collezione utilizzando lo schema specificato.
err = milvusClient.CreaCollezione(
context.Background(), // ctx
schema,
2, // shardNum
)
if err != nil {
log.Fatal("Impossibile creare la collezione: ", err.Error())
}
Parametro | Descrizione | Opzioni |
---|---|---|
ctx |
Contesto per controllare il processo di chiamata dell'API | N/A |
numeroShard |
Numero di shard nella collezione da creare | [1,16] |
Limitazioni della Raccolta
Configurazione delle Risorse
Funzionalità | Limite Massimo |
---|---|
Lunghezza del nome della raccolta | 255 caratteri |
Numero di partizioni nella raccolta | 4.096 |
Numero di campi nella raccolta | 64 |
Numero di shard nella raccolta | 16 |
Parametro default_value
-
default_value
si applica solo ai campi scalari non di tipo array e non di tipo JSON. -
default_value
non si applica alle chiavi primarie. - Il tipo di dati di
default_value
deve essere lo stesso del tipo di dati specificato indtype
, altrimenti potrebbero verificarsi errori. - Se viene utilizzato
auto_id
, non è consentito impostare tutti i campi rimanenti per utilizzare valori predefiniti. In altre parole, durante l'esecuzione delle operazioni di inserimento o aggiornamento, è necessario specificare un valore per almeno un campo, altrimenti potrebbero verificarsi errori.
Verifica dell'esistenza di una raccolta
collExists, err := milvusClient.HasCollection(ctx, nomeRaccolta)
if err != nil {
log.Fatal("Impossibile verificare l'esistenza della raccolta: ", err.Error())
}
Eliminazione di una raccolta
_ = milvusClient.DropCollection(ctx, nomeRaccolta)
Interrogazione di tutte le raccolte
raccolte, err := milvusClient.ListCollections(ctx)