Koleksiyon Oluşturma

Bu konu, Milvus'ta bir koleksiyon oluşturmanın nasıl yapılacağını açıklar.

Bir koleksiyon, bir veya daha fazla bölümden oluşur. Yeni bir koleksiyon oluşturulurken, Milvus otomatik olarak _varsayılan adında bir varsayılan bölüm oluşturur.

Aşağıdaki örnek, book adında, book_id adında birincil anahtara, word_count adında bir INT64 skaler alanına ve book_intro adında iki boyutlu kayan noktalı vektör alanına sahip iki shard içeren bir koleksiyon oluşturur. Gerçek uygulamalar, örnektekinden daha yüksek vektör boyutları kullanabilir.

Koleksiyon Şeması Tanımı

Oluşturulacak koleksiyon, birincil anahtar alanı ve vektör alanını içermelidir. Birincil anahtar alanı, INT64 ve VarChar veri tiplerini destekler.

İpucu: Koleksiyonun şema tanımı, MYSQL'de bir tablo yapısını tanımlamaya benzer.

İlk olarak, alan şemaları, koleksiyon şemaları ve koleksiyon adları da dahil olmak üzere gerekli parametreleri hazırlayın.

Koleksiyon şemasını tanımlamadan önce, koleksiyondaki her alan için bir şema oluşturun. Veri ekleme karmaşıklığını basitleştirmek için, Milvus, her skaler alan için (birincil anahtar alanı hariç) veri ekleme sırasında bir alan boş bırakılırsa, bu alan için şema oluşturulurken yapılandırılan varsayılan değeri belirtmeye izin verir.

var (
    collectionName = "book"
    )
schema := &entity.Schema{
  CollectionName: collectionName,
  Description:    "Kitap araması testi",
  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
}

Tür Parametre Açıklama Seçenekler
entity.Schema CollectionName Oluşturulacak koleksiyonun adı N/A
Description Oluşturulacak koleksiyonun açıklaması N/A
AutoID Otomatik ID (birincil anahtar) tahsisini etkinleştirmek veya devre dışı bırakmak için kullanılan anahtar True veya False
Fields Oluşturulacak koleksiyondaki alanların şemaları. Daha fazla bilgi için şemaya bakın N/A
EnableDynamicField Dinamik şemayı etkinleştirip etmeyeceği N/A
entity.Field Name Oluşturulacak alanın adı N/A
PrimaryKey Bu alanın birincil anahtar olup olmadığı. Birincil anahtar alanları için gereklidir N/A
AutoID Alan değerinin otomatik olarak artırılıp artırılmayacağı. Birincil anahtar alanları için gereklidir N/A
Description Alanın açıklaması N/A
DataType Oluşturulacak alanın veri tipi Birincil anahtar alanları için: - entity.FieldTypeInt64(numpy.int64) - entity.FieldTypeVarChar(VARCHAR) Skaler alanlar için: - 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) Vektör alanlar için: - entity.FieldTypeBinaryVector (İkili vektör) - entity.FieldTypeFloatVector (Kayan noktalı vektör)
TypeParams Belirli veri tipleri için parametreleri ayarlayan dizeye eşleme N/A
IndexParams Koleksiyon indeksi parametrelerini ayarlayan dizeye eşleme N/A
IsDynamic Bu alanın dinamik şemayı etkinleştirip etkinleştirmeyeceği N/A
IsPartitionKey Bu alanın bir bölüm anahtarı olarak işlev gösterip göstermediği N/A

Tanımlanan yapıya dayalı olarak bir koleksiyon oluşturun

Daha sonra belirtilen şemayı kullanarak bir koleksiyon oluşturun.

err = milvusClient.CreateCollection(
    context.Background(), // ctx
    schema,
    2, // shardNum
)
if err != nil {
    log.Fatal("Koleksiyon oluşturma başarısız: ", err.Error())
}
Parametre Açıklama Seçenekler
ctx API çağrısı sürecini kontrol etmek için bağlam N/A
shardNum Oluşturulacak koleksiyondaki shard sayısı [1,16]

Koleksiyon Kısıtlamaları

Kaynak Yapılandırması

Özellik Maksimum Sınırı
Koleksiyon adı uzunluğu 255 karakter
Koleksiyondaki bölüm sayısı 4,096
Koleksiyondaki alan sayısı 64
Koleksiyondaki shard sayısı 16

default_value Parametresi

  • default_value sadece dizi olmayan ve JSON skaler olmayan alanlara uygulanır.
  • default_value, birincil anahtarlar için geçerli değildir.
  • default_value'nun veri türü, dtype'da belirtilen veri türüyle aynı olmalıdır, aksi takdirde hatalar oluşabilir.
  • auto_id kullanılıyorsa, kalan tüm alanları varsayılan değerlerle ayarlamak izin verilmez. Başka bir deyişle, ekleme veya güncelleme işlemleri gerçekleştirilirken en az bir alan için bir değer belirtmeniz gerekir, aksi takdirde hatalar oluşabilir.

Bir koleksiyonun var olup olmadığını kontrol et

collExists, err := milvusClient.HasCollection(ctx, collectionName)
if err != nil {
    log.Fatal("Koleksiyonun var olup olmadığını kontrol etme başarısız: ", err.Error())
}

Bir koleksiyonu sil

_ = milvusClient.DropCollection(ctx, collectionName)

Tüm koleksiyonları sorgula

collections, err := milvusClient.ListCollections(ctx)