Membuat sebuah koleksi
Tema ini menjelaskan bagaimana cara membuat koleksi di Milvus.
Koleksi terdiri dari satu atau lebih partisi. Saat membuat koleksi baru, Milvus secara otomatis membuat partisi default bernama _default
.
Contoh berikut membuat sebuah koleksi bernama buku
dengan dua shard. Ini mencakup sebuah field kunci utama bernama book_id
, sebuah field skalar bertipe INT64
bernama word_count
, dan sebuah field vektor bertipe floating point dua dimensi bernama book_intro
. Aplikasi aktual mungkin menggunakan dimensi vektor yang lebih tinggi daripada contoh ini.
Definisi Skema Koleksi
Koleksi yang akan dibuat harus mencakup sebuah field kunci utama dan field vektor. Field kunci utama mendukung tipe data INT64 dan VarChar.
Petunjuk: Definisi skema koleksi mirip dengan mendefinisikan struktur tabel di MYSQL.
Pertama, siapkan parameter-parameter yang diperlukan, termasuk skema field, skema koleksi, dan nama koleksi.
Sebelum mendefinisikan skema koleksi, buat sebuah skema untuk setiap field dalam koleksi. Untuk menyederhanakan kompleksitas penyisipan data, Milvus memungkinkan untuk menentukan nilai default untuk setiap field skalar (kecuali untuk field kunci utama). Ini berarti jika sebuah field dibiarkan kosong selama penyisipan data, nilai default yang dikonfigurasi untuk field ini selama pembuatan skema field akan digunakan.
var (
collectionName = "buku"
)
schema := &entity.Schema{
CollectionName: collectionName,
Description: "Pencarian buku uji coba",
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
}
Tipe | Parameter | Deskripsi | Opsi |
---|---|---|---|
entity.Schema |
CollectionName |
Nama koleksi yang akan dibuat | Tidak ada |
Description |
Deskripsi koleksi yang akan dibuat | Tidak ada | |
AutoID |
Sakelar yang digunakan untuk mengaktifkan atau menonaktifkan pemberian ID otomatis (kunci utama) | True atau False |
|
Fields |
Skema dari field-field dalam koleksi yang akan dibuat. Untuk informasi lebih lanjut, lihat skema | Tidak ada | |
EnableDynamicField |
Apakah mengaktifkan skema dinamis. Untuk informasi lebih lanjut tentang skema dinamis, lihat Panduan Pengguna Skema Dinamis dan Manajemen Koleksi | Tidak ada | |
entity.Field |
Name |
Nama field yang akan dibuat | Tidak ada |
PrimaryKey |
Apakah field ini adalah kunci utama. Diperlukan untuk field kunci utama | Tidak ada | |
AutoID |
Apakah nilai field diinkrementasi secara otomatis. Diperlukan untuk field kunci utama | Tidak ada | |
Description |
Deskripsi field | Tidak ada | |
DataType |
Tipe data dari field yang akan dibuat | Untuk field kunci utama: - entity.FieldTypeInt64(numpy.int64) - entity.FieldTypeVarChar(VARCHAR) Untuk field skalar: - 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) Untuk field vektor: - entity.FieldTypeBinaryVector (Vektor biner) - entity.FieldTypeFloatVector (Vektor Floating) |
|
TypeParams |
Pemetaan ke string yang mengatur parameter untuk tipe data spesifik | Tidak ada | |
IndexParams |
Pemetaan ke string yang mengatur parameter indeks koleksi | Tidak ada | |
IsDynamic |
Apakah field ini mengaktifkan skema dinamis | Tidak ada | |
IsPartitionKey |
Apakah field ini bertindak sebagai kunci partisi | Tidak ada |
Membuat sebuah koleksi berdasarkan struktur yang telah ditentukan
Selanjutnya, buat sebuah koleksi menggunakan skema yang telah ditentukan.
err = milvusClient.CreateCollection(
context.Background(), // ctx
schema,
2, // shardNum
)
if err != nil {
log.Fatal("Gagal membuat koleksi: ", err.Error())
}
Parameter | Deskripsi | Opsi |
---|---|---|
ctx |
Konteks untuk mengendalikan proses panggilan API | Tidak ada |
shardNum |
Jumlah shard dalam koleksi yang akan dibuat | [1,16] |
Pembatasan Koleksi
Konfigurasi Sumber Daya
Fitur | Batas Maksimum |
---|---|
Panjang nama koleksi | 255 karakter |
Jumlah partisi dalam koleksi | 4.096 |
Jumlah bidang dalam koleksi | 64 |
Jumlah shard dalam koleksi | 16 |
Parameter default_value
-
default_value
hanya berlaku untuk bidang skalar non-array dan non-JSON. -
default_value
tidak berlaku untuk kunci utama. - Jenis data dari
default_value
harus sama dengan jenis data yang ditentukan dalamdtype
, jika tidak, kesalahan mungkin terjadi. - Jika
auto_id
digunakan, tidak diizinkan untuk mengatur semua sisa bidang menggunakan nilai default. Dengan kata lain, saat melakukan operasi insert atau update, Anda perlu menentukan nilai untuk setidaknya satu bidang, jika tidak, kesalahan mungkin terjadi.
Periksa apakah sebuah koleksi ada
collExists, err := milvusClient.HasCollection(ctx, collectionName)
if err != nil {
log.Fatal("Gagal memeriksa apakah koleksi ada: ", err.Error())
}
Hapus sebuah koleksi
_ = milvusClient.DropCollection(ctx, collectionName)
Query semua koleksi
collections, err := milvusClient.ListCollections(ctx)