コレクションの管理
このガイドでは、選択したSDKを使用して、コレクションの作成と管理について説明します。
始める前に
MilvusスタンドアロンまたはMilvusクラスタをインストールしている。
お好みのSDKをインストール済みであること。Python、Java、Go、Node.jsを含む様々な言語から選択できる。
概要
Milvusでは、ベクトル埋め込みをコレクションに格納します。コレクション内のすべてのベクトル埋め込みは、同じ次元と類似度を測定するための距離メトリックを共有します。
Milvusのコレクションは動的フィールド(スキーマで定義されていないフィールド)と主キーの自動インクリメントをサポートしています。
様々な好みに対応するため、Milvusはコレクションの作成に2つの方法を提供しています。1つはクイックセットアップを提供し、もう1つはコレクションスキーマとインデックスパラメータの詳細なカスタマイズを可能にします。
さらに、必要に応じてコレクションを表示、ロード、リリース、ドロップすることができます。
コレクションの作成
以下のいずれかの方法でコレクションを作成できます:
クイックセットアップ
この方法では、名前を付けて、このコレクションに格納するベクトル埋込みの次元数を指定するだけで、コレクションを作成できます。詳細は、Quick setupを参照。
カスタマイズセットアップ
In Milvusにコレクションのほとんどすべてを任せる代わりに、コレクションのスキーマと インデックスパラメータを自分で決めることができます。詳細はカスタマイズセットアップを参照してください。
クイックセットアップ
AI業界における大きな飛躍を背景に、ほとんどの開発者はシンプルかつダイナミックなコレクションを必要としています。Milvusでは、3つの引数を指定するだけで、そのようなコレクションを素早くセットアップできます:
作成するコレクションの名前、
挿入するベクトル埋め込み次元
ベクトル埋め込み間の類似度を測定するためのメトリックタイプ。
素早くセットアップするには create_collection()
クラスの MilvusClient
クラスのメソッドを使用して、指定された名前と次元を持つコレクションを作成します。
素早くセットアップするには createCollection()
クラスの MilvusClientV2
クラスのメソッドを使用して、指定された名前とディメンジョンを持つコレクションを作成します。
クイック・セットアップには createCollection()
メソッドを使用します。 MilvusClient
クラスのメソッドを使用して、指定された名前とディメンジョンを持つコレクションを作成します。
を使用します。 POST /v2/vectordb/collections/create
API エンドポイントを使用して、指定された名前とディメンジョンを持つコレクションを作成します。
from pymilvus import MilvusClient, DataType
# 1. Set up a Milvus client
client = MilvusClient(
uri="http://localhost:19530"
)
# 2. Create a collection in quick setup mode
client.create_collection(
collection_name="quick_setup",
dimension=5
)
res = client.get_load_state(
collection_name="quick_setup"
)
print(res)
# Output
#
# {
# "state": "<LoadState: Loaded>"
# }
import io.milvus.v2.client.ConnectConfig;
import io.milvus.v2.client.MilvusClientV2;
import io.milvus.v2.service.collection.request.GetLoadStateReq;
import io.milvus.v2.service.collection.request.CreateCollectionReq;
String CLUSTER_ENDPOINT = "http://localhost:19530";
// 1. Connect to Milvus server
ConnectConfig connectConfig = ConnectConfig.builder()
.uri(CLUSTER_ENDPOINT)
.build();
MilvusClientV2 client = new MilvusClientV2(connectConfig);
// 2. Create a collection in quick setup mode
CreateCollectionReq quickSetupReq = CreateCollectionReq.builder()
.collectionName("quick_setup")
.dimension(5)
.build();
client.createCollection(quickSetupReq);
// Thread.sleep(5000);
GetLoadStateReq quickSetupLoadStateReq = GetLoadStateReq.builder()
.collectionName("quick_setup")
.build();
Boolean res = client.getLoadState(quickSetupLoadStateReq);
System.out.println(res);
// Output:
// true
address = "http://localhost:19530"
// 1. Set up a Milvus Client
client = new MilvusClient({address});
// 2. Create a collection in quick setup mode
let res = await client.createCollection({
collection_name: "quick_setup",
dimension: 5,
});
console.log(res.error_code)
// Output
//
// Success
//
res = await client.getLoadState({
collection_name: "quick_setup"
})
console.log(res.state)
// Output
//
// LoadStateLoaded
//
$ export MILVUS_URI="localhost:19530"
$ curl -X POST "http://${MILVUS_URI}/v2/vectordb/collections/create" \
-H "Content-Type: application/json" \
-d '{
"collectionName": "quick_setup",
"dimension": 5
}'
# Output
#
# {
# "code": 0,
# "data": {},
# }
$ curl -X POST "http://${MILVUS_URI}/v2/vectordb/collections/get_load_state" \
-H "Content-Type: application/json" \
-d '{
"collectionName": "quick_setup"
}'
# {
# "code": 0,
# "data": {
# "loadProgress": 100,
# "loadState": "LoadStateLoaded"
# }
# }
上記のコードで生成されたコレクションには、id
(主キーとして) とvector
(ベクトル・フィールドとして) の2つのフィールドのみが含まれ、auto_id
とenable_dynamic_field
の設定はデフォルトで有効になっています。
auto_id
この設定を有効にすると、主キーが自動的にインクリメントされます。データ挿入時に主キーを手動で指定する必要はない。
enable_dynamic_field
この設定を有効にすると、挿入されるデータの
id
、vector
を除くすべてのフィールドがダイナミック・フィールドとして扱われる。これらの追加フィールドは、$meta
という特別なフィールド内にキーと値のペアとして保存される。この機能により、データ挿入時に追加フィールドを含めることができる。
提供されたコードから自動的にインデックス付けされ、ロードされたコレクションは、すぐにデータ挿入の準備ができます。
カスタマイズされたセットアップ
Milvusにコレクションのほとんど全てを決定させる代わりに、あなた自身でコレクションのスキーマと インデックスパラメータを決定することができます。
ステップ1: スキーマの設定
スキーマはコレクションの構造を定義します。スキーマ内では、enable_dynamic_field
を有効または無効にし、定義済みフィールドを追加し、各フィールドに属性を設定するオプションがあります。スキーマの概念と使用可能なデータ型の詳細については、スキーマの説明を参照してください。
スキーマを設定するには create_schema()
を使用してスキーマ・オブジェクトを作成し add_field()
を使用してスキーマにフィールドを追加する。
スキーマを設定するには createSchema()
を使ってスキーマ・オブジェクトを作成し addField()
スキーマにフィールドを追加する。
スキーマをセットアップするには createCollection()
.
スキーマを設定するには、API エンドポイントのリファレンス・ページに表示されているスキーマ・フォーマットに従った JSON オブジェクトを定義する必要があります。 POST /v2/vectordb/collections/create
API エンドポイントのリファレンス・ページに表示されているスキーマ・フォーマットに従った JSON オブジェクトを定義する必要があります。
# 3. Create a collection in customized setup mode
# 3.1. Create schema
schema = MilvusClient.create_schema(
auto_id=False,
enable_dynamic_field=True,
)
# 3.2. Add fields to schema
schema.add_field(field_name="my_id", datatype=DataType.INT64, is_primary=True)
schema.add_field(field_name="my_vector", datatype=DataType.FLOAT_VECTOR, dim=5)
import io.milvus.v2.common.DataType;
import io.milvus.v2.service.collection.request.CreateCollectionReq;
// 3. Create a collection in customized setup mode
// 3.1 Create schema
CreateCollectionReq.CollectionSchema schema = client.createSchema();
// 3.2 Add fields to schema
schema.addField(AddFieldReq.builder()
.fieldName("my_id")
.dataType(DataType.Int64)
.isPrimaryKey(true)
.autoID(false)
.build());
schema.addField(AddFieldReq.builder()
.fieldName("my_vector")
.dataType(DataType.FloatVector)
.dimension(5)
.build());
// 3. Create a collection in customized setup mode
// 3.1 Define fields
const fields = [
{
name: "my_id",
data_type: DataType.Int64,
is_primary_key: true,
auto_id: false
},
{
name: "my_vector",
data_type: DataType.FloatVector,
dim: 5
},
]
export fields='[{ \
"fieldName": "my_id", \
"dataType": "Int64", \
"isPrimary": true \
}, \
{ \
"fieldName": "my_vector", \
"dataType": "FloatVector", \
"elementTypeParams": { \
"dim": 5 \
} \
}]'
パラメータ | 説明 |
---|---|
auto_id |
これをTrueに設定すると、プライマリ・フィールドが自動的にインクリメントされる。この場合、エラーを避けるため、プライマリ・フィールドを挿入するデータに含めるべきではありません。自動生成されたIDは固定長で、変更することはできません。 |
enable_dynamic_field |
これをTrue に設定すると、Milvus は挿入されるデータから未定義のフィールドとその値を保存する$metaというフィールドを作成します。 |
field_name |
フィールド名。 |
datatype |
フィールドのデータ型。使用可能なデータ型のリストについては、DataTypeを参照してください。 |
is_primary |
各コレクションは、1 つのプライマリ・フィールドのみを持つ。プライマリ・フィールドは、DataType.INT64型またはDataType.VARCHAR型のいずれかである必要があります。 |
dim |
DataType.FLOAT_VECTOR、DataType.BINARY_VECTOR、DataType.FLOAT16_VECTOR、またはDataType.BFLOAT16_VECTOR型のフィールドでは必須です。DataType.SPARSE_FLOAT_VECTORを使用する場合は、このパラメータを省略します。 |
パラメータ | 説明 |
---|---|
fieldName |
フィールド名。 |
dataType |
フィールドのデータ型。使用可能なデータ型のリストについては、DataTypeを参照してください。 |
isPrimaryKey |
各コレクションは、1 つのプライマリ・フィールドのみを持つ。プライマリ・フィールドはDataType.Int64型またはDataType.VarChar型のいずれかでなければなりません。 |
autoID |
これをtrueに設定すると、プライマリフィールドが自動的にインクリメントされます。この場合、プライマリ・フィールドはエラーを避けるために挿入するデータに含めるべきではありません。 |
dimension |
DataType.FloatVector、DataType.BinaryVector、DataType.Float16Vector、DataType.BFloat16Vector型のフィールドでは必須。 |
パラメータ | 説明 |
---|---|
name |
フィールド名。 |
data_type |
フィールドのデータ型。使用可能なすべてのデータ型の列挙については、DataTypeを参照してください。 |
is_primary_key |
各コレクションは、1 つのプライマリ・フィールドのみを持つ。プライマリ・フィールドは、DataType.INT64型またはDataType.VARCHAR型のいずれかでなければなりません。 |
auto_id |
デフォルト値はFalse です。Trueに設定すると、プライマリ・フィールドが自動的にインクリメントされます。カスタマイズしたスキーマでコレクションをセットアップする必要がある場合は、このパラメータをスキップします。 |
dim |
ベクトル埋め込みを保持するコレクションフィールドの次元数。 値は1以上の整数である必要があり、通常はベクトル埋め込みを生成するために使用するモデルによって決定される。 |
パラメータ | 説明 |
---|---|
fieldName |
ターゲット・コレクションに作成するフィールドの名前。 |
dataType |
フィールド値のデータ型。 |
isPrimary |
現在のフィールドがプライマリ・フィールドかどうか。これをTrue に設定すると、現在のフィールドがプライマリ・フィールドになります。 |
elementTypeParams |
追加フィールド・パラメータ。 |
dim |
FloatVector または BinaryVector フィールドのオプション・パラメータで、ベクトル次元を決定します。 |
ステップ2:インデックスパラメータの設定
インデックスパラメータは、Milvusがコレクション内でデータをどのように整理するかを決定します。metric_type
とindex_type
を調整することで、特定のフィールドのインデックス作成プロセスを調整できます。ベクトル・フィールドでは、扱うベクトルのタイプに応じて、metric_type
、COSINE
、L2
、IP
、HAMMING
、JACCARD
を柔軟に選択できます。詳細については、類似度メトリクスを参照してください。
インデックス・パラメータを設定するには prepare_index_params()
を使用してインデックス・パラメータを準備し add_index()
を使用してインデックスを追加します。
インデックス・パラメータを設定するには、IndexParam を使用します。
インデックス・パラメータを設定するには createIndex()
.
インデックス・パラメータを設定するには、以下のAPIエンドポイント・リファレンス・ページに表示されているインデックス・パラメータの書式に従ったJSONオブジェクトを定義する必要があります。 POST /v2/vectordb/collections/create
API エンドポイント・リファレンス・ページに表示されているインデックス・パラメータ・フォーマットに従った JSON オブジェクトを定義する必要があります。
# 3.3. Prepare index parameters
index_params = client.prepare_index_params()
# 3.4. Add indexes
index_params.add_index(
field_name="my_id",
index_type="STL_SORT"
)
index_params.add_index(
field_name="my_vector",
index_type="IVF_FLAT",
metric_type="IP",
params={ "nlist": 128 }
)
import io.milvus.v2.common.IndexParam;
// 3.3 Prepare index parameters
IndexParam indexParamForIdField = IndexParam.builder()
.fieldName("my_id")
.indexType(IndexParam.IndexType.STL_SORT)
.build();
IndexParam indexParamForVectorField = IndexParam.builder()
.fieldName("my_vector")
.indexType(IndexParam.IndexType.IVF_FLAT)
.metricType(IndexParam.MetricType.L2)
.extraParams(Map.of("nlist", 1024))
.build();
List<IndexParam> indexParams = new ArrayList<>();
indexParams.add(indexParamForIdField);
indexParams.add(indexParamForVectorField);
// 3.2 Prepare index parameters
const index_params = [{
field_name: "my_id",
index_type: "STL_SORT"
},{
field_name: "my_vector",
index_type: "IVF_FLAT",
metric_type: "IP",
params: { nlist: 1024}
}]
export indexParams='[{ \
"fieldName": "my_id", \
"indexName": "my_id", \
"params": { \
"index_type": "SLT_SORT" \
} \
}, { \
"fieldName": "my_vector", \
"metricType": "COSINE", \
"indexName": "my_vector", \
"params": { \
"index_type": "IVF_FLAT", \
"nlist": 1024 \
} \
}]'
パラメータ | 説明 |
---|---|
field_name |
このオブジェクトが適用されるターゲット・ファイルの名前。 |
index_type |
特定のフィールドにデータを配置するために使用されるアルゴリズムの名前。適用可能なアルゴリズムについては、In-memory IndexおよびOn-disk Index を参照してください。 |
metric_type |
ベクトル間の類似度を測定するために使用されるアルゴリズム。指定可能な値はIP、L2、COSINE、JACCARD、HAMMING。これは、指定されたフィールドがベクトル・フィールドである場合にのみ使用できる。詳しくはMilvusでサポートされているインデックスを参照してください。 |
params |
指定されたインデックス・タイプの微調整パラメータ。指定可能なキーと値の範囲の詳細については、メモリ内インデックスを参照してください。 |
パラメータ | 説明 |
---|---|
fieldName |
このIndexParamオブジェクトを適用する対象フィールドの名前。 |
indexType |
特定のフィールドにデータを配置するために使用されるアルゴリズムの名前。適用可能なアルゴリズムについては、In-memory IndexおよびOn-disk Index を参照してください。 |
metricType |
インデックスに使用する距離メトリック。指定可能な値はIP、L2、COSINE、JACCARD、HAMMING。 |
extraParams |
インデックスの追加パラメータ。詳細はインメモリ・インデックスと オンディスク・インデックスを参照。 |
パラメータ | 説明 |
---|---|
field_name |
インデックスを作成する対象フィールドの名前。 |
index_type |
特定のフィールドにデータを配置するために使用されるアルゴリズム名。適用可能なアルゴリズムについては、インメモリ・インデックスと オンディスク・インデックスを参照のこと。 |
metric_type |
ベクトル間の類似度を測定するために使用されるアルゴリズム。指定可能な値はIP、L2、COSINE、JACCARD、HAMMING。これは、指定されたフィールドがベクトル・フィールドである場合にのみ使用できる。詳しくはMilvusでサポートされているインデックスを参照してください。 |
params |
指定されたインデックス・タイプの微調整パラメータ。指定可能なキーと値の範囲の詳細については、メモリ内インデックスを参照してください。 |
パラメータ | 説明 |
---|---|
fieldName |
インデックスを作成する対象フィールドの名前。 |
indexName |
作成するインデックスの名前。デフォルト値はターゲット・フィールド名。 |
metricType |
ベクトル間の類似度の測定に使用するアルゴリズム。指定可能な値はIP、L2、COSINE、JACCARD、HAMMING です。これは、指定されたフィールドがベクトル・フィールドである場合にのみ使用できます。詳しくはMilvusでサポートされているインデックスを参照してください。 |
params |
インデックス・タイプと関連する設定。詳細はインメモリインデックスを参照。 |
params.index_type |
作成するインデックスのタイプ。 |
params.nlist |
クラスタ単位の数。これはIVF関連のインデックスタイプに適用されます。 |
上のコード・スニペットは、ベクトル・フィールドとスカラー・フィールドそれぞれのインデックス・パラメータの設定方法を示しています。ベクトル・フィールドには、メトリック型とインデックス型の両方を設定します。スカラー・フィールドの場合は、インデックス・タイプのみを設定します。ベクトル・フィールドと、フィルタリングに頻繁に使用されるスカラー・フィールドには、インデックスを作成することを推奨する。
ステップ 3: コレクションの作成
コレクションとインデックス・ファイルを別々に作成するか、作成時にインデックスを同時にロードしてコ レクションを作成するかを選択できます。
create_collection()を使用して、指定されたスキーマおよびインデックス・パラメータでコレクションを作成し、get_load_state()でコレクションのロード状態を確認します。
createCollection() を使用して、指定したスキーマおよびインデックス・パラメータを持つコレクションを作成し、getLoadState() を使用してコレクションのロード状態を確認します。
createCollection() を使用して、指定されたスキーマおよびインデックス・パラメータを持つコレクションを作成し、getLoadState() を使用してコレクションのロード状態を確認します。
作成時にインデックスが同時にロードされたコレクションを作成します。
# 3.5. Create a collection with the index loaded simultaneously client.create_collection( collection_name="customized_setup_1", schema=schema, index_params=index_params ) time.sleep(5) res = client.get_load_state( collection_name="customized_setup_1" ) print(res) # Output # # { # "state": "<LoadState: Loaded>" # }
import io.milvus.v2.service.collection.request.CreateCollectionReq; import io.milvus.v2.service.collection.request.GetLoadStateReq; // 3.4 Create a collection with schema and index parameters CreateCollectionReq customizedSetupReq1 = CreateCollectionReq.builder() .collectionName("customized_setup_1") .collectionSchema(schema) .indexParams(indexParams) .build(); client.createCollection(customizedSetupReq1); // Thread.sleep(5000); // 3.5 Get load state of the collection GetLoadStateReq customSetupLoadStateReq1 = GetLoadStateReq.builder() .collectionName("customized_setup_1") .build(); res = client.getLoadState(customSetupLoadStateReq1); System.out.println(res); // Output: // true
// 3.3 Create a collection with fields and index parameters res = await client.createCollection({ collection_name: "customized_setup_1", fields: fields, index_params: index_params, }) console.log(res.error_code) // Output // // Success // res = await client.getLoadState({ collection_name: "customized_setup_1" }) console.log(res.state) // Output // // LoadStateLoaded //
$ curl -X POST "http://${MILVUS_URI}/v2/vectordb/collections/create" \ -H "Content-Type: application/json" \ -d '{ "collectionName": "customized_setup_1", "schema": { "autoId": false, "enabledDynamicField": false, "fields": [ { "fieldName": "my_id", "dataType": "Int64", "isPrimary": true }, { "fieldName": "my_vector", "dataType": "FloatVector", "elementTypeParams": { "dim": "5" } } ] }, "indexParams": [ { "fieldName": "my_vector", "metricType": "COSINE", "indexName": "my_vector", "params": { "index_type": "IVF_FLAT", "nlist": "1024" } }, { "fieldName": "my_id", "indexName": "my_id", "params": { "index_type": "STL_SORT" } } ] }' # Output # # { # "code": 0, # "data": {}, # } $ curl -X POST "http://${MILVUS_URI}/v2/vectordb/collections/get_load_state" \ -H "Content-Type: application/json" \ -d '{ "collectionName": "customized_setup_1" }' # { # "code": 0, # "data": { # "loadProgress": 100, # "loadState": "LoadStateLoaded" # } # }
上記で作成されたコレクションは自動的にロードされます。コレクションのロードとリリースの詳細は、Load & Release Collection を参照してください。
コレクションとインデックスファイルを別々に作成する。
# 3.6. Create a collection and index it separately client.create_collection( collection_name="customized_setup_2", schema=schema, ) res = client.get_load_state( collection_name="customized_setup_2" ) print(res) # Output # # { # "state": "<LoadState: NotLoad>" # }
// 3.6 Create a collection and index it separately CreateCollectionReq customizedSetupReq2 = CreateCollectionReq.builder() .collectionName("customized_setup_2") .collectionSchema(schema) .build(); client.createCollection(customizedSetupReq2);
// 3.4 Create a collection and index it seperately res = await client.createCollection({ collection_name: "customized_setup_2", fields: fields, }) console.log(res.error_code) // Output // // Success // res = await client.getLoadState({ collection_name: "customized_setup_2" }) console.log(res.state) // Output // // LoadStateNotLoad //
$ curl -X POST "http://${MILVUS_URI}/v2/vectordb/collections/create" \ -H "Content-Type: application/json" \ -d '{ "collectionName": "customized_setup_2", "schema": { "autoId": false, "enabledDynamicField": false, "fields": [ { "fieldName": "my_id", "dataType": "Int64", "isPrimary": true }, { "fieldName": "my_vector", "dataType": "FloatVector", "elementTypeParams": { "dim": "5" } } ] } }' # Output # # { # "code": 0, # "data": {}, # } $ curl -X POST "http://${MILVUS_URI}/v2/vectordb/collections/get_load_state" \ -H "Content-Type: application/json" \ -d '{ "collectionName": "customized_setup_2" }' # { # "code": 0, # "data": { # "loadState": "LoadStateNotLoaded" # } # }
上記で作成したコレクションは自動的にロードされません。以下のように、コレクションにインデックスを作成できます。別の方法でコレクションのインデックスを作成しても、コレクションは自動的にロード されません。詳細は、Load & Release Collection を参照してください。
パラメータ 説明 collection_name
コレクションの名前。 schema
このコレクションのスキーマ。
これをNoneに設定すると、このコレクションはデフォルト設定で作成されます。
カスタマイズしたスキーマでコレクションを設定するには、CollectionSchemaオブジェクトを作成し、それをここで参照する必要があります。この場合、milvusはリクエストに含まれる他のスキーマ関連の設定をすべて無視します。index_params
このコレクション内のベクトルフィールドのインデックスを構築するためのパラメータです。カスタマイズされたスキーマでコレクションを設定し、自動的にコレクションをメモリにロードするには、IndexParamsオブジェクトを作成し、ここで参照する必要があります。
少なくとも、このコレクション内のベクトルフィールドのインデックスを追加する必要があります。インデックスパラメータを後で設定したい場合は、このパラメータを省略することもできます。パラメータ 説明 collectionName
コレクションの名前。 collectionSchema
これを空にすると、このコレクションはデフォルト設定で作成されます。カスタマイズしたスキーマでコレクションをセットアップするには、CollectionSchemaオブジェクトを作成し、ここでそれを参照する必要があります。indexParams
このコレクション内のベクトル・フィールドにインデックスを構築するためのパラメータ。カスタマイズされたスキーマでコレクションをセットアップし、コレクションを自動的にメモリにロードするには、IndexParamオブジェクトのリストでIndexParamsオブジェクトを作成し、ここでそれを参照します。 パラメータ 説明 collection_name
コレクションの名前。 fields
コレクション内のフィールド。 index_params
作成するコレクションのインデックス・パラメータ。 パラメータ 説明 collectionName
コレクションの名前。 schema
スキーマは、ターゲット・コレクション内のデータを整理する役割を果たします。有効なスキーマは複数のフィールドを持つ必要があり、プライマリ・キー、ベクトル・フィールド、および複数のスカラー・フィールドを含む必要があります。 schema.autoID
主フィールドの自動インクリメントを許可するかどうか。これをTrueに設定すると、プライマリ・フィールドは自動的にインクリメントされます。この場合、エラーを避けるためにプライマリ・フィールドを挿入するデータに含めるべきではありません。is_primaryをTrueに設定したフィールドにこのパラメータを設定します。 schema.enableDynamicField
予約された$metaフィールドを使用して、スキーマで定義されていないフィールドをkey-valueペアで保持することを許可するかどうか。 fields
フィールド・オブジェクトのリスト。 fields.fieldName
ターゲット・コレクションに作成するフィールドの名前。 fields.dataType
フィールド値のデータ型。 fields.isPrimary
現在のフィールドがプライマリ・フィールドかどうか。True に設定すると、現在のフィールドがプライマリ・フィールドになります。 fields.elementTypeParams
追加のフィールド・パラメータ。 fields.elementTypeParams.dim
FloatVector または BinaryVector フィールドのオプション・パラメータで、ベクトル次元を決定します。 上記で作成したコレクションは自動的にロードされません。以下のように、コレクションのインデックスを作成できます。別の方法でコレクションのインデックスを作成しても、コレクションは自動的にロード されません。詳細は、Load & Release Collection を参照。
# 3.6 Create index client.create_index( collection_name="customized_setup_2", index_params=index_params ) res = client.get_load_state( collection_name="customized_setup_2" ) print(res) # Output # # { # "state": "<LoadState: NotLoad>" # }
CreateIndexReq createIndexReq = CreateIndexReq.builder() .collectionName("customized_setup_2") .indexParams(indexParams) .build(); client.createIndex(createIndexReq); // Thread.sleep(1000); // 3.7 Get load state of the collection GetLoadStateReq customSetupLoadStateReq2 = GetLoadStateReq.builder() .collectionName("customized_setup_2") .build(); res = client.getLoadState(customSetupLoadStateReq2); System.out.println(res); // Output: // false
// 3.5 Create index res = await client.createIndex({ collection_name: "customized_setup_2", field_name: "my_vector", index_type: "IVF_FLAT", metric_type: "IP", params: { nlist: 1024} }) res = await client.getLoadState({ collection_name: "customized_setup_2" }) console.log(res.state) // Output // // LoadStateNotLoad //
$ curl -X POST "http://${MILVUS_URI}/v2/vectordb/indexes/create" \ -H "Content-Type: application/json" \ -d '{ "collectionName": "customized_setup_2", "indexParams": [ { "metricType": "L2", "fieldName": "my_vector", "indexName": "my_vector", "indexConfig": { "index_type": "IVF_FLAT", "nlist": "1024" } } ] }' # Output # # { # "code": 0, # "data": {}, # } $ curl -X POST "http://${MILVUS_URI}/v2/vectordb/collections/get_load_state" \ -H "Content-Type: application/json" \ -d '{ "collectionName": "customized_setup_2" }' # { # "code": 0, # "data": { # "loadState": "LoadStateNotLoaded" # } # }
パラメータ 説明 collection_name
コレクションの名前。 index_params
IndexParamオブジェクトのリストを含むIndexParamsオブジェクト。
パラメータ | 説明 |
---|---|
collectionName |
コレクションの名前。 |
indexParams |
IndexParamオブジェクトのリスト。 |
パラメータ | 説明 |
---|---|
collection_name |
コレクションの名前。 |
field_name |
インデックスを作成するフィールドの名前。 |
index_type |
特定のフィールドにデータを配置するために使用するアルゴリズム名。適用可能なアルゴリズムについては、In-memory IndexおよびOn-disk Index を参照してください。 |
metric_type |
ベクトル間の類似度を測定するために使用されるアルゴリズム。指定可能な値はIP、L2、COSINE、JACCARD、HAMMING。これは、指定されたフィールドがベクトル・フィールドである場合にのみ使用できる。詳しくはMilvusでサポートされているインデックスを参照してください。 |
params |
指定されたインデックス・タイプの微調整パラメータ。指定可能なキーと値の範囲の詳細については、メモリ内インデックスを参照してください。 |
パラメータ | 説明 |
---|---|
collectionName |
コレクションの名前。 |
indexParams |
作成するコレクションのインデックス・パラメータ。 |
indexParams.metricType |
インデックスの構築に使用される類似度メトリックのタイプ。既定値は COSINE。 |
indexParams.fieldName |
インデックスを作成する対象フィールドの名前。 |
indexParams.indexName |
作成するインデックスの名前。値の既定値はターゲット・フィールド名です。 |
indexParams.indexConfig.index_type |
作成するインデックスのタイプ。 |
indexParams.indexConfig.nlist |
クラスタ・ユニットの数。これはIVF関連のインデックス・タイプに適用されます。 |
コレクションの表示
既存のコレクションの詳細を確認するにはdescribe_collection() を使用します。
既存のコレクションの詳細を確認するにはdescribeCollection() を使用します。
既存のコレクションの詳細を確認するにはdescribeCollection() を使用します。
コレクションの定義を表示するには POST /v2/vectordb/collections/describe
および POST /v2/vectordb/collections/list
API エンドポイントを使用します。
# 5. View Collections
res = client.describe_collection(
collection_name="customized_setup_2"
)
print(res)
# Output
#
# {
# "collection_name": "customized_setup_2",
# "auto_id": false,
# "num_shards": 1,
# "description": "",
# "fields": [
# {
# "field_id": 100,
# "name": "my_id",
# "description": "",
# "type": 5,
# "params": {},
# "element_type": 0,
# "is_primary": true
# },
# {
# "field_id": 101,
# "name": "my_vector",
# "description": "",
# "type": 101,
# "params": {
# "dim": 5
# },
# "element_type": 0
# }
# ],
# "aliases": [],
# "collection_id": 448143479230158446,
# "consistency_level": 2,
# "properties": {},
# "num_partitions": 1,
# "enable_dynamic_field": true
# }
import io.milvus.v2.service.collection.request.DescribeCollectionReq;
import io.milvus.v2.service.collection.response.DescribeCollectionResp;
// 4. View collections
DescribeCollectionReq describeCollectionReq = DescribeCollectionReq.builder()
.collectionName("customized_setup_2")
.build();
DescribeCollectionResp describeCollectionRes = client.describeCollection(describeCollectionReq);
System.out.println(JSONObject.toJSON(describeCollectionRes));
// Output:
// {
// "createTime": 449005822816026627,
// "collectionSchema": {"fieldSchemaList": [
// {
// "autoID": false,
// "dataType": "Int64",
// "name": "my_id",
// "description": "",
// "isPrimaryKey": true,
// "maxLength": 65535,
// "isPartitionKey": false
// },
// {
// "autoID": false,
// "dataType": "FloatVector",
// "name": "my_vector",
// "description": "",
// "isPrimaryKey": false,
// "dimension": 5,
// "maxLength": 65535,
// "isPartitionKey": false
// }
// ]},
// "vectorFieldName": ["my_vector"],
// "autoID": false,
// "fieldNames": [
// "my_id",
// "my_vector"
// ],
// "description": "",
// "numOfPartitions": 1,
// "primaryFieldName": "my_id",
// "enableDynamicField": true,
// "collectionName": "customized_setup_2"
// }
// 5. View Collections
res = await client.describeCollection({
collection_name: "customized_setup_2"
})
console.log(res)
// Output
//
// {
// virtual_channel_names: [ 'by-dev-rootcoord-dml_13_449007919953017716v0' ],
// physical_channel_names: [ 'by-dev-rootcoord-dml_13' ],
// aliases: [],
// start_positions: [],
// properties: [],
// status: {
// extra_info: {},
// error_code: 'Success',
// reason: '',
// code: 0,
// retriable: false,
// detail: ''
// },
// schema: {
// fields: [ [Object], [Object] ],
// properties: [],
// name: 'customized_setup_2',
// description: '',
// autoID: false,
// enable_dynamic_field: false
// },
// collectionID: '449007919953017716',
// created_timestamp: '449024569603784707',
// created_utc_timestamp: '1712892797866',
// shards_num: 1,
// consistency_level: 'Bounded',
// collection_name: 'customized_setup_2',
// db_name: 'default',
// num_partitions: '1'
// }
//
curl -X POST "http://${MILVUS_URI}/v2/vectordb/collections/describe" \
-H "Content-Type: application/json" \
-d '{
"dbName": "default",
"collectionName": "test_collection"
}'
# {
# "code": 0,
# "data": {
# "aliases": [],
# "autoId": false,
# "collectionID": 448707763883002014,
# "collectionName": "test_collection",
# "consistencyLevel": "Bounded",
# "description": "",
# "enableDynamicField": true,
# "fields": [
# {
# "autoId": false,
# "description": "",
# "id": 100,
# "name": "id",
# "partitionKey": false,
# "primaryKey": true,
# "type": "Int64"
# },
# {
# "autoId": false,
# "description": "",
# "id": 101,
# "name": "vector",
# "params": [
# {
# "key": "dim",
# "value": "5"
# }
# ],
# "partitionKey": false,
# "primaryKey": false,
# "type": "FloatVector"
# }
# ],
# "indexes": [
# {
# "fieldName": "vector",
# "indexName": "vector",
# "metricType": "COSINE"
# }
# ],
# "load": "LoadStateLoaded",
# "partitionsNum": 1,
# "properties": [],
# "shardsNum": 1
# }
# }
既存のコレクションをすべてリストアップするには、以下のようにする:
# 6. List all collection names
res = client.list_collections()
print(res)
# Output
#
# [
# "customized_setup_2",
# "quick_setup",
# "customized_setup_1"
# ]
import io.milvus.v2.service.collection.response.ListCollectionsResp;
// 5. List all collection names
ListCollectionsResp listCollectionsRes = client.listCollections();
System.out.println(listCollectionsRes.getCollectionNames());
// Output:
// [
// "customized_setup_2",
// "quick_setup",
// "customized_setup_1"
// ]
// 5. List all collection names
ListCollectionsResp listCollectionsRes = client.listCollections();
System.out.println(listCollectionsRes.getCollectionNames());
// Output:
// [
// "customized_setup_1",
// "quick_setup",
// "customized_setup_2"
// ]
$ curl -X POST "http://${MILVUS_URI}/v2/vectordb/collections/list" \
-H "Content-Type: application/json" \
-d '{
"dbName": "default"
}'
# {
# "code": 0,
# "data": [
# "quick_setup",
# "customized_setup_1",
# "customized_setup_2"
# ]
# }
コレクションのロードとリリース
コレクションをロードする際、Milvusはコレクションのインデックスファイルをメモリにロードします。逆に、コレクションをリリースする際、Milvusはインデックスファイルをメモリからアンロードします。コレクションで検索を行う前に、コレクションがロードされていることを確認してください。
コレクションのロード
コレクションをロードするには load_collection()
メソッドを使用し、コレクション名を指定します。また、replica_number
を設定して、コレクションのロード時にクエリノード上に作成するデータセグメントのメモリ内レプリカの数を決定することもできます。
- Milvus Standaloneの場合:
replica_number
の最大許容値は 1 です。 - Milvus Cluster:最大値はMilvus構成で設定された
queryNode.replicas
を超えないようにしてください。詳細については、クエリ・ノード関連設定を参照してください。
コレクションをロードするには loadCollection()
メソッドを使用し、コレクション名を指定します。
コレクションをロードするには loadCollection()
メソッドを使用します。
コレクションをロードするには POST /v2/vectordb/collections/load
および POST /v2/vectordb/collections/get_load_state
API エンドポイントを使用します。
# 7. Load the collection
client.load_collection(
collection_name="customized_setup_2",
replica_number=1 # Number of replicas to create on query nodes. Max value is 1 for Milvus Standalone, and no greater than `queryNode.replicas` for Milvus Cluster.
)
res = client.get_load_state(
collection_name="customized_setup_2"
)
print(res)
# Output
#
# {
# "state": "<LoadState: Loaded>"
# }
import io.milvus.v2.service.collection.request.LoadCollectionReq;
// 6. Load the collection
LoadCollectionReq loadCollectionReq = LoadCollectionReq.builder()
.collectionName("customized_setup_2")
.build();
client.loadCollection(loadCollectionReq);
// Thread.sleep(5000);
// 7. Get load state of the collection
GetLoadStateReq loadStateReq = GetLoadStateReq.builder()
.collectionName("customized_setup_2")
.build();
res = client.getLoadState(loadStateReq);
System.out.println(res);
// Output:
// true
// 7. Load the collection
res = await client.loadCollection({
collection_name: "customized_setup_2"
})
console.log(res.error_code)
// Output
//
// Success
//
await sleep(3000)
res = await client.getLoadState({
collection_name: "customized_setup_2"
})
console.log(res.state)
// Output
//
// LoadStateLoaded
//
$ curl -X POST "http://${MILVUS_URI}/v2/vectordb/collections/load" \
-H "Content-Type: application/json" \
-d '{
"collectionName": "customized_setup_2"
}'
# Output
#
# {
# "code": 0,
# "data": {},
# }
$ curl -X POST "http://${MILVUS_URI}/v2/vectordb/collections/get_load_state" \
-H "Content-Type: application/json" \
-d '{
"collectionName": "customized_setup_2"
}'
# {
# "code": 0,
# "data": {
# "loadProgress": 100,
# "loadState": "LoadStateLoaded"
# }
# }
コレクションを部分的に読み込む(パブリックプレビュー)
この機能は現在パブリックプレビュー中です。APIと機能は将来変更される可能性があります。
ロード要求を受け取ると、Milvusはすべてのベクトルフィールドインデックスとすべてのスカラーフィールドデータをメモリにロードします。検索やクエリに関与しないフィールドがある場合、それらをロードから除外してメモリ使用量を削減し、検索パフォーマンスを向上させることができます。
# 7. Load the collection
client.load_collection(
collection_name="customized_setup_2",
load_fields=["my_id", "my_vector"], # Load only the specified fields
skip_load_dynamic_field=True # Skip loading the dynamic field
)
res = client.get_load_state(
collection_name="customized_setup_2"
)
print(res)
# Output
#
# {
# "state": "<LoadState: Loaded>"
# }
検索やクエリでフィルタリング条件や出力フィールドとして使用できるのは、load_fields
にリストされたフィールドだけであることに注意してください。リストには常に主キーを含める必要があります。ロードから除外されたフィールド名はフィルタリングや出力に使用できません。
skip_load_dynamic_field=True
、ダイナミック・フィールドのロードをスキップすることができます。Milvusはダイナミックフィールドを1つのフィールドとして扱うため、ダイナミックフィールド内のすべてのキーが一緒に含まれたり除外されたりします。
コレクションの解放
コレクションを解放するには release_collection()
メソッドを使用します。
コレクションを解放するには releaseCollection()
メソッドを使用します。
コレクションを解放するには releaseCollection()
メソッドを使用します。
コレクションを解放するには POST /v2/vectordb/collections/release
および POST /v2/vectordb/collections/get_load_state
APIエンドポイントを使用します。
# 8. Release the collection
client.release_collection(
collection_name="customized_setup_2"
)
res = client.get_load_state(
collection_name="customized_setup_2"
)
print(res)
# Output
#
# {
# "state": "<LoadState: NotLoad>"
# }
import io.milvus.v2.service.collection.request.ReleaseCollectionReq;
// 8. Release the collection
ReleaseCollectionReq releaseCollectionReq = ReleaseCollectionReq.builder()
.collectionName("customized_setup_2")
.build();
client.releaseCollection(releaseCollectionReq);
// Thread.sleep(1000);
res = client.getLoadState(loadStateReq);
System.out.println(res);
// Output:
// false
// 8. Release the collection
res = await client.releaseCollection({
collection_name: "customized_setup_2"
})
console.log(res.error_code)
// Output
//
// Success
//
res = await client.getLoadState({
collection_name: "customized_setup_2"
})
console.log(res.state)
// Output
//
// LoadStateNotLoad
//
$ curl -X POST "http://${MILVUS_URI}/v2/vectordb/collections/release" \
-H "Content-Type: application/json" \
-d '{
"collectionName": "customized_setup_2"
}'
# Output
#
# {
# "code": 0,
# "data": {},
# }
$ curl -X POST "http://${MILVUS_URI}/v2/vectordb/collections/get_load_state" \
-H "Content-Type: application/json" \
-d '{
"collectionName": "customized_setup_2"
}'
# {
# "code": 0,
# "data": {
# "loadState": "LoadStateNotLoad"
# }
# }
エイリアスの設定
コレクションにエイリアスを割り当てて、特定のコンテキストでより意味のあるものにすることができます。コレクションには複数のエイリアスを割り当てることができますが、複数のコレクションでエイリアスを共有することはできません。
エイリアスの作成
エイリアスを作成するには create_alias()
メソッドを使用して、コレクション名とエイリアスを指定します。
エイリアスを作成するには createAlias()
メソッドを使用し、コレクション名とエイリアスを指定します。
エイリアスを作成するには createAlias()
メソッドを使用し、コレクション名とエイリアスを指定します。
コレクションのエイリアスを作成するには POST /v2/vectordb/aliases/create
API エンドポイントを使用します。
# 9.1. Create aliases
client.create_alias(
collection_name="customized_setup_2",
alias="bob"
)
client.create_alias(
collection_name="customized_setup_2",
alias="alice"
)
import io.milvus.v2.service.utility.request.CreateAliasReq;
// 9. Manage aliases
// 9.1 Create alias
CreateAliasReq createAliasReq = CreateAliasReq.builder()
.collectionName("customized_setup_2")
.alias("bob")
.build();
client.createAlias(createAliasReq);
createAliasReq = CreateAliasReq.builder()
.collectionName("customized_setup_2")
.alias("alice")
.build();
client.createAlias(createAliasReq);
// 9. Manage aliases
// 9.1 Create aliases
res = await client.createAlias({
collection_name: "customized_setup_2",
alias: "bob"
})
console.log(res.error_code)
// Output
//
// Success
//
res = await client.createAlias({
collection_name: "customized_setup_2",
alias: "alice"
})
console.log(res.error_code)
// Output
//
// Success
//
$ curl -X POST "http://${MILVUS_URI}/v2/vectordb/aliases/create" \
-H "Content-Type: application/json" \
-d '{
"collectionName": "customized_setup_2",
"aliasName": "bob"
}'
# Output
#
# {
# "code": 0,
# "data": {}
# }
$ curl -X POST "http://${MILVUS_URI}/v2/vectordb/aliases/create" \
-H "Content-Type: application/json" \
-d '{
"collectionName": "customized_setup_2",
"aliasName": "alice"
}'
# Output
#
# {
# "code": 0,
# "data": {}
# }
パラメータ | 説明 |
---|---|
collection_name |
エイリアスを作成するコレクションの名前。 |
alias |
コレクションのエイリアス。この操作の前に、エイリアスが既に存在しないことを確認してください。存在する場合は例外が発生します。 |
パラメータ | 説明 |
---|---|
collectionName |
エイリアスを作成するコレクションの名前。 |
alias |
コレクションのエイリアス。この操作の前に、エイリアスが既に存在しないことを確認してください。存在する場合は例外が発生します。 |
パラメータ | 説明 |
---|---|
collection_name |
エイリアスを作成するコレクションの名前。 |
alias |
コレクションのエイリアス。この操作の前に、エイリアスが既に存在しないことを確認してください。存在する場合は例外が発生します。 |
パラメータ | 説明 |
---|---|
collectionName |
エイリアスを作成するコレクションの名前。 |
aliasName |
コレクションのエイリアス。この操作の前に、エイリアスが既に存在しないことを確認してください。存在する場合は例外が発生します。 |
エイリアスのリスト
エイリアスをリストするには list_aliases()
メソッドを使用します。
エイリアスをリストするには listAliases()
メソッドを使用します。
エイリアスをリストするには listAliases()
メソッドを使用します。
コレクションのエイリアスをリストするには POST /v2/vectordb/aliases/list
API エンドポイントを使用します。
# 9.2. List aliases
res = client.list_aliases(
collection_name="customized_setup_2"
)
print(res)
# Output
#
# {
# "aliases": [
# "bob",
# "alice"
# ],
# "collection_name": "customized_setup_2",
# "db_name": "default"
# }
import io.milvus.v2.service.utility.request.ListAliasesReq;
import io.milvus.v2.service.utility.response.ListAliasResp;
// 9.2 List alises
ListAliasesReq listAliasesReq = ListAliasesReq.builder()
.collectionName("customized_setup_2")
.build();
ListAliasResp listAliasRes = client.listAliases(listAliasesReq);
System.out.println(listAliasRes.getAlias());
// Output:
// [
// "bob",
// "alice"
// ]
// 9.2 List aliases
res = await client.listAliases({
collection_name: "customized_setup_2"
})
console.log(res.aliases)
// Output
//
// [ 'bob', 'alice' ]
//
$ curl -X POST "http://${MILVUS_URI}/v2/vectordb/aliases/list" \
-H "Content-Type: application/json" \
-d '{
"collectionName": "customized_setup_2"
}'
# {
# "code": 0,
# "data": [
# "bob",
# "alice"
# ]
# }
エイリアスの記述
エイリアスを記述するには describe_alias()
メソッドを使います。
エイリアスを記述するには describeAlias()
メソッドを使う。
エイリアスを記述するには describeAlias()
メソッドを使用します。
コレクションのエイリアスを記述するには POST /v2/vectordb/aliases/describe
API エンドポイントを使用します。
# 9.3. Describe aliases
res = client.describe_alias(
alias="bob"
)
print(res)
# Output
#
# {
# "alias": "bob",
# "collection_name": "customized_setup_2",
# "db_name": "default"
# }
import io.milvus.v2.service.utility.request.DescribeAliasReq;
import io.milvus.v2.service.utility.response.DescribeAliasResp;
// 9.3 Describe alias
DescribeAliasReq describeAliasReq = DescribeAliasReq.builder()
.alias("bob")
.build();
DescribeAliasResp describeAliasRes = client.describeAlias(describeAliasReq);
System.out.println(JSONObject.toJSON(describeAliasRes));
// Output:
// {
// "alias": "bob",
// "collectionName": "customized_setup_2"
// }
// 9.3 Describe aliases
res = await client.describeAlias({
collection_name: "customized_setup_2",
alias: "bob"
})
console.log(res)
// Output
//
// {
// status: {
// extra_info: {},
// error_code: 'Success',
// reason: '',
// code: 0,
// retriable: false,
// detail: ''
// },
// db_name: 'default',
// alias: 'bob',
// collection: 'customized_setup_2'
// }
//
$ curl -X POST "http://${MILVUS_URI}/v2/vectordb/aliases/describe" \
-H "Content-Type: application/json" \
-d '{
"aliasName": "bob"
}'
# {
# "code": 0,
# "data": {
# "aliasName": "bob",
# "collectionName": "quick_setup",
# "dbName": "default"
# }
# }
エイリアスの再割り当て
エイリアスを他のコレクションに再割り当てするには alter_alias()
メソッドを使用して、コレクション名とエイリアスを指定します。
エイリアスを他のコレクションに再割り当てするには alterAlias()
メソッドを使用して、コレクション名とエイリアスを指定します。
エイリアスを他のコレクションに再割り当てするには alterAlias()
メソッドを使用して、コレクション名とエイリアスを指定します。
エイリアスを他のコレクションに再割り当てするには POST /v2/vectordb/aliases/alter
APIエンドポイントを使用します。
# 9.4 Reassign aliases to other collections
client.alter_alias(
collection_name="customized_setup_1",
alias="alice"
)
res = client.list_aliases(
collection_name="customized_setup_1"
)
print(res)
# Output
#
# {
# "aliases": [
# "alice"
# ],
# "collection_name": "customized_setup_1",
# "db_name": "default"
# }
res = client.list_aliases(
collection_name="customized_setup_2"
)
print(res)
# Output
#
# {
# "aliases": [
# "bob"
# ],
# "collection_name": "customized_setup_2",
# "db_name": "default"
# }
import io.milvus.v2.service.utility.request.AlterAliasReq;
// 9.4 Reassign alias to other collections
AlterAliasReq alterAliasReq = AlterAliasReq.builder()
.collectionName("customized_setup_1")
.alias("alice")
.build();
client.alterAlias(alterAliasReq);
listAliasesReq = ListAliasesReq.builder()
.collectionName("customized_setup_1")
.build();
listAliasRes = client.listAliases(listAliasesReq);
System.out.println(listAliasRes.getAlias());
// Output:
// ["alice"]
listAliasesReq = ListAliasesReq.builder()
.collectionName("customized_setup_2")
.build();
listAliasRes = client.listAliases(listAliasesReq);
System.out.println(listAliasRes.getAlias());
// Output:
// ["bob"]
// 9.4 Reassign aliases to other collections
res = await client.alterAlias({
collection_name: "customized_setup_1",
alias: "alice"
})
console.log(res.error_code)
// Output
//
// Success
//
res = await client.listAliases({
collection_name: "customized_setup_1"
})
console.log(res.aliases)
// Output
//
// [ 'alice' ]
//
res = await client.listAliases({
collection_name: "customized_setup_2"
})
console.log(res.aliases)
// Output
//
// [ 'bob' ]
//
$ curl -X POST "http://${MILVUS_URI}/v2/vectordb/aliases/alter" \
-H "Content-Type: application/json" \
-d '{
"collectionName": "customized_setup_1",
"aliasName": "alice"
}'
# {
# "code": 0,
# "data": {}
# }
$ curl -X POST "http://${MILVUS_URI}/v2/vectordb/aliases/list" \
-H "Content-Type: application/json" \
-d '{
"collectionName": "customized_setup_1"
}'
# {
# "code": 0,
# "data": [
# "alice"
# ]
# }
$ curl -X POST "http://${MILVUS_URI}/v2/vectordb/aliases/list" \
-H "Content-Type: application/json" \
-d '{
"collectionName": "customized_setup_2"
}'
# {
# "code": 0,
# "data": [
# "bob"
# ]
# }
エイリアスの削除
エイリアスを削除するには drop_alias()
メソッドを使う。
エイリアスを削除するには dropAlias()
メソッドを使う。
エイリアスを削除するには dropAlias()
メソッドを使用します。
コレクションのエイリアスを削除するには POST /v2/vectordb/aliases/drop
APIエンドポイントを使用します。
# 9.5 Drop aliases
client.drop_alias(
alias="bob"
)
client.drop_alias(
alias="alice"
)
import io.milvus.v2.service.utility.request.DropAliasReq;
// 9.5 Drop alias
DropAliasReq dropAliasReq = DropAliasReq.builder()
.alias("bob")
.build();
client.dropAlias(dropAliasReq);
dropAliasReq = DropAliasReq.builder()
.alias("alice")
.build();
client.dropAlias(dropAliasReq);
// 9.5 Drop aliases
res = await client.dropAlias({
alias: "bob"
})
console.log(res.error_code)
// Output
//
// Success
//
res = await client.dropAlias({
alias: "alice"
})
console.log(res.error_code)
// Output
//
// Success
//
$ curl -X POST "http://${MILVUS_URI}/v2/vectordb/aliases/drop" \
-H "Content-Type: application/json" \
-d '{
"aliasName": "bob"
}'
# {
# "code": 0,
# "data": {}
# }
$ curl -X POST "http://${MILVUS_URI}/v2/vectordb/aliases/drop" \
-H "Content-Type: application/json" \
-d '{
"aliasName": "alice"
}'
# {
# "code": 0,
# "data": {}
# }
プロパティの設定
ttl.seconds
やmmap.enabled
など、コレクションのプロパティを設定できます。詳細はset_properties() を参照してください。
このセクションのコードスニペットはPyMilvus ORMモジュールを使用してMilvusとやりとりします。新しいMilvusClient SDKを使用したコードスニペットは近日公開予定です。
TTLの設定
コレクション内のデータのTTL(Time-To-Live)を設定します。これはデータが自動的に削除されるまでの保持期間を指定します。
from pymilvus import Collection, connections
# Connect to Milvus server
connections.connect(host="localhost", port="19530") # Change to your Milvus server IP and port
# Get existing collection
collection = Collection("quick_setup")
# Set the TTL for the data in the collection
collection.set_properties(
properties={
"collection.ttl.seconds": 60
}
)
MMAP の設定
これは、クエリのパフォーマンスを向上させるために、データをメモリにマッピングするかどうかを決定します。詳細は、メモリ・マッピングの構成 を参照してください。
MMAP プロパティを設定する前に、まずコレクションを解放します。そうしないと、エラーが発生します。
from pymilvus import Collection, connections
# Connect to Milvus server
connections.connect(host="localhost", port="19530") # Change to your Milvus server IP and port
# Get existing collection
collection = Collection("quick_setup")
# Before setting memory mapping property, we need to release the collection first.
collection.release()
# Set memory mapping property to True or Flase
collection.set_properties(
properties={
"mmap.enabled": True
}
)
コレクションを放棄する
コレクションが不要になった場合、コレクションを削除できます。
コレクションを削除するには drop_collection()
メソッドを使用します。
コレクションを削除するには dropCollection()
メソッドを使用します。
コレクションを削除するには dropCollection()
メソッドを使用します。
コレクションを削除するには POST /v2/vectordb/collections/drop
APIエンドポイントを使用します。
# 10. Drop the collections
client.drop_collection(
collection_name="quick_setup"
)
client.drop_collection(
collection_name="customized_setup_1"
)
client.drop_collection(
collection_name="customized_setup_2"
)
import io.milvus.v2.service.collection.request.DropCollectionReq;
// 10. Drop collections
DropCollectionReq dropQuickSetupParam = DropCollectionReq.builder()
.collectionName("quick_setup")
.build();
client.dropCollection(dropQuickSetupParam);
DropCollectionReq dropCustomizedSetupParam = DropCollectionReq.builder()
.collectionName("customized_setup_1")
.build();
client.dropCollection(dropCustomizedSetupParam);
dropCustomizedSetupParam = DropCollectionReq.builder()
.collectionName("customized_setup_2")
.build();
client.dropCollection(dropCustomizedSetupParam);
// 10. Drop the collection
res = await client.dropCollection({
collection_name: "customized_setup_2"
})
console.log(res.error_code)
// Output
//
// Success
//
res = await client.dropCollection({
collection_name: "customized_setup_1"
})
console.log(res.error_code)
// Output
//
// Success
//
res = await client.dropCollection({
collection_name: "quick_setup"
})
console.log(res.error_code)
// Output
//
// Success
//
$ curl -X POST "http://${MILVUS_URI}/v2/vectordb/collections/drop" \
-H "Content-Type: application/json" \
-d '{
"collectionName": "quick_setup"
}'
# {
# "code": 0,
# "data": {}
# }
$ curl -X POST "http://${MILVUS_URI}/v2/vectordb/collections/drop" \
-H "Content-Type: application/json" \
-d '{
"collectionName": "customized_setup_1"
}'
# {
# "code": 0,
# "data": {}
# }
$ curl -X POST "http://${MILVUS_URI}/v2/vectordb/collections/drop" \
-H "Content-Type: application/json" \
-d '{
"collectionName": "customized_setup_2"
}'
# {
# "code": 0,
# "data": {}
# }