メインコンテンツまでスキップ
バージョン: User Guides (Cloud)

コレクションの説明

Zilliz Cloud では、複数のコレクションを作成してデータを管理し、データをエンティティとしてコレクションに挿入できます。コレクションとエンティティは、リレーショナルデータベースにおけるテーブルとレコードに類似しています。このページでは、コレクションおよび関連概念について説明します。

Collection

コレクションは、固定された列と可変の行を持つ 2 次元テーブルです。各列はフィールドを表し、各行はエンティティを表します。

以下のチャートは、8 つの列と 6 つのエンティティを持つコレクションを示しています。

BitLbgzN4oYspwxM4vQcAmg2n9f

Schema and Fields

オブジェクトを記述する際、通常はその属性(サイズ、重量、位置など)に言及します。これらの属性をコレクション内のフィールドとして使用できます。各フィールドには、データ型やベクトルフィールドの次元数など、さまざまな制約プロパティがあります。フィールドを作成し、その順序を定義することで、コレクションスキーマを構成できます。適用可能なデータ型については、スキーマの説明 を参照してください。

挿入するエンティティには、スキーマで定義されたすべてのフィールドを含める必要があります。一部のフィールドをオプションにするには、以下のオプションを検討してください。

  • NULL 許容またはデフォルト値の設定

    フィールドを NULL許容 にする方法またはデフォルト値を設定する方法の詳細については、NULL許容 & Default を参照してください。

  • 動的フィールドの有効化

    動的フィールドを有効化して使用する方法の詳細については、Dynamic Field を参照してください。

Primary key and AutoId

リレーショナルデータベースの主キーと同様に、コレクションにはあるエンティティを他のエンティティと区別するための主フィールドがあります。主フィールド内の各値はグローバルに一意であり、特定の 1 つのエンティティに対応します。

上記のチャートに示すように、id という名前のフィールドが主フィールドとして機能しており、最初の ID 0The Mortality Rate of Coronavirus is Not Important というタイトルのエンティティに対応しています。主フィールドが 0 である他のエンティティは存在しません。

主フィールドは整数または文字列のみを受け入れます。エンティティを挿入する際、デフォルトでは主フィールドの値を含める必要があります。ただし、コレクション作成時に AutoId を有効にしている場合、Zilliz Cloud はデータ挿入時にそれらの値を生成します。その場合、挿入するエンティティから主フィールドの値を除外してください。

詳細については、Primary Field & AutoId を参照してください。

Index

特定のフィールドにインデックスを作成すると、検索効率が向上します。サービスが依存するすべてのフィールドに対してインデックスを作成することを推奨しますが、その中でもベクトルフィールドに対するインデックスは必須です。

Milvus とは異なり、Zilliz Cloud 上のコレクションにおけるベクトルフィールドに適用可能なインデックスタイプは AUTOINDEX のみです。詳細については、AUTOINDEX Explained を参照してください。

Entity

エンティティとは、コレクション内で同じフィールドセットを共有するデータレコードです。同じ行のすべてのフィールドの値が集まって 1 つのエンティティを構成します。

コレクションには必要な数のエンティティを挿入できます。ただし、エンティティの数が増えるにつれてメモリ使用量も増加し、検索パフォーマンスに影響を与える可能性があります。

詳細については、スキーマの説明 を参照してください。

Load and Release

コレクションのロードは、コレクション内で類似度検索やクエリを実行するための前提条件です。コレクションをロードすると、Zilliz Cloud はすべてのインデックスファイルと各フィールドの生データをメモリに読み込み、検索やクエリへの高速な応答を可能にします。

検索とクエリはメモリ集約型の操作です。コストを節約するため、現在使用していないコレクションはリリースすることを推奨します。

詳細については、Load & Release を参照してください。

Search and Query

インデックスを作成し、コレクションをロードした後、1 つまたは複数のクエリベクトルを提供することで類似度検索を開始できます。例えば、検索リクエストに含まれるクエリのベクトル表現を受信すると、Zilliz Cloud は指定されたメトリックタイプを使用して、クエリベクトルとターゲットコレクション内のベクトルとの類似度を測定し、クエリと意味的に類似した結果を返します。

また、検索とクエリ内にメタデータフィルタリングを含めて、結果の関連性を高めることもできます。なお、メタデータフィルタリング条件はクエリでは必須ですが、検索ではオプションです。

適用可能なメトリックタイプについては、メトリックタイプs を参照してください。

検索とクエリに関する詳細情報は、Search & Rerank チャプターの記事を参照してください。基本的な機能は以下の通りです。

さらに、Zilliz Cloud は検索パフォーマンスと効率を向上させるための拡張機能も提供しています。これらは デフォルトで無効 であり、サービスの要件に応じて有効化して使用できます。それらは以下の通りです。

Partition

パーティションはコレクションのサブセットであり、親コレクションと同じフィールドセットを共有し、それぞれがエンティティのサブセットを含みます。

エンティティを異なるパーティションに割り当てることで、エンティティグループを作成できます。特定のパーティションで検索やクエリを実行することで、Zilliz Cloud に他のパーティションのエンティティを無視させ、検索効率を向上させることができます。

詳細については、Manage パーティション を参照してください。

Shard

シャードはコレクションの水平スライスです。各シャードはデータ入力チャネルに対応します。すべてのコレクションにはデフォルトで 1 つのシャードがあります。期待されるスループットとコレクションに挿入するデータのボリュームに基づいて、コレクション作成時に適切なシャード数を設定できます。

シャード数の設定方法の詳細については、Create Collection を参照してください。

エイリアス

コレクションに対してエイリアスを作成できます。1 つのコレクションに複数のエイリアスを持たせることはできますが、複数のコレクションで同じエイリアスを共有することはできません。コレクションに対するリクエストを受信すると、Zilliz Cloud は提供された名前に基づいてコレクションを特定します。提供された名前のコレクションが存在しない場合、Zilliz Cloud はその名前をエイリアスとして特定し続けます。コレクションエイリアスを使用して、コードをさまざまなシナリオに適応させることができます。

詳細については、Manage エイリアスes を参照してください。

Function

コレクション作成時にフィールドを派生させるために、Zilliz Cloud に対して関数を設定できます。例えば、全文検索関数は、ユーザー定義関数を使用して特定の varchar フィールドからスパースベクトルフィールドを派生させます。全文検索に関する詳細情報は、全文検索 を参照してください。

一貫性 Level

分散データベースシステムでは通常、一貫性レベルを使用してデータノードとレプリカ間のデータの同一性を定義します。コレクションを作成する際、またはコレクション内で類似度検索を実行する際に、個別の一貫性レベルを設定できます。適用可能な一貫性レベルは StrongBounded StalenessSessionEventually です。

これらの一貫性レベルの詳細については、一貫性 Level を参照してください。

制限s

コレクションに関する制限と制約については、Zilliz Cloud 制限s を参照してください。