立即建立集合
您可以透過設定名稱和向量場的維度,立即建立一個集合。Milvus 會自動索引向量欄位,並在建立時載入集合。本頁面示範如何使用預設值立即建立集合。
概觀
集合是一個二維表,有固定的列和變異的行。每列代表一個欄位,每行代表一個實體。要實現這種結構性資料管理,需要一個模式。每個要插入的實體都必須符合模式中定義的約束。
AIGC 應用程式通常使用向量資料庫作為知識庫,以管理使用者與大型語言模型 (LLM) 互動期間所產生的資料。這樣的知識庫幾乎大同小異。為了加速 Milvus 叢集在這種情況下的使用,有一種即時方法可供您建立一個只有兩個參數的集合,即集合名稱和向量欄位維度。
當您使用預設值即時建立集合時,下列設定將會適用。
主要欄位和向量欄位會新增至模式(id和向量)。
主要欄位接受整數並停用AutoId。
向量欄位接受浮動向量嵌入。
AUTOINDEX用於在向量欄位上建立索引。
COSINE用來測量向量嵌入之間的相似性。
已啟用名為$meta的保留動態欄位,以鍵值對儲存非結構描述定義的欄位及其值。
該集合會在建立時自動載入。
有關上述術語的詳細資訊,請參閱Collection Explained。
值得注意的是,使用預設設定立即建立集合並不適用於所有情況。建議您熟悉常見的集合建立程序,以便更好地瞭解 Milvus 的功能。
快速設定
透過這種方式,您只需輸入集合名稱和向量欄位的維度,就能立即建立集合。
from pymilvus import MilvusClient, DataType
CLUSTER_ENDPOINT = "http://localhost:19530"
TOKEN = "root:Milvus"
# 1. Set up a Milvus client
client = MilvusClient(
uri=CLUSTER_ENDPOINT,
token=TOKEN
)
# 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";
String TOKEN = "root:Milvus";
// 1. Connect to Milvus server
ConnectConfig connectConfig = ConnectConfig.builder()
.uri(CLUSTER_ENDPOINT)
.token(TOKEN)
.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);
GetLoadStateReq quickSetupLoadStateReq = GetLoadStateReq.builder()
.collectionName("quick_setup")
.build();
Boolean res = client.getLoadState(quickSetupLoadStateReq);
System.out.println(res);
// Output:
// true
// 1. Set up a Milvus Client
import { MilvusClient, DataType } from "@zilliz/milvus2-sdk-node";
const address = "http://localhost:19530";
const token = "root:Milvus";
const client = new MilvusClient({address, token});
// 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
//
// Go 缺失
export CLUSTER_ENDPOINT="http://localhost:19530"
export TOKEN="root:Milvus"
curl --request POST \
--url "${CLUSTER_ENDPOINT}/v2/vectordb/collections/create" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Content-Type: application/json" \
-d '{
"collectionName": "quick_setup",
"dimension": 5
}'
# {
# "code": 0,
# "data": {}
# }
使用自訂欄位快速設定
如果預設的度量類型、欄位名稱和資料類型不符合您的需求,您可以調整這些設定,如下所示。
from pymilvus import MilvusClient, DataType
CLUSTER_ENDPOINT = "http://localhost:19530"
TOKEN = "root:Milvus"
# 1. Set up a Milvus client
client = MilvusClient(
uri=CLUSTER_ENDPOINT,
token=TOKEN
)
# 2. Create a collection in quick setup mode
client.create_collection(
collection_name="custom_quick_setup",
dimension=5,
primary_field_name="my_id",
id_type="string",
vector_field_name="my_vector",
metric_type="L2",
auto_id=True,
max_length=512
)
res = client.get_load_state(
collection_name="custom_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";
String TOKEN = "root:Milvus";
// 1. Connect to Milvus server
ConnectConfig connectConfig = ConnectConfig.builder()
.uri(CLUSTER_ENDPOINT)
.token(TOKEN)
.build();
MilvusClientV2 client = new MilvusClientV2(connectConfig);
// 2. Create a collection in quick setup mode
CreateCollectionReq customQuickSetupReq = CreateCollectionReq.builder()
.collectionName("custom_quick_setup")
.dimension(5)
.primaryFieldName("my_id")
.idType(DataType.VarChar)
.maxLength(512)
.vectorFieldName("my_vector")
.metricType("L2")
.autoID(true)
.build();
client.createCollection(customQuickSetupReq);
GetLoadStateReq customQuickSetupLoadStateReq = GetLoadStateReq.builder()
.collectionName("custom_quick_setup")
.build();
Boolean res = client.getLoadState(customQuickSetupLoadStateReq);
System.out.println(res);
// Output:
// true
// 1. Set up a Milvus Client
const address = "http://localhost:19530";
const token = "root:Milvus";
const client = new MilvusClient({address, token});
// 2. Create a collection in quick setup mode
let res = await client.createCollection({
collection_name: "custom_quick_setup",
dimension: 5,
primary_field_name: "my_id",
id_type: "Varchar",
max_length: 512,
vector_field_name: "my_vector",
metric_type: "L2",
auto_id: true
});
console.log(res.error_code)
// Output
//
// Success
//
res = await client.getLoadState({
collection_name: "custom_quick_setup"
})
console.log(res.state)
// Output
//
// LoadStateLoaded
//
// Go 缺失
export CLUSTER_ENDPOINT="http://localhost:19530"
export TOKEN="root:Milvus"
curl --request POST \
--url "${CLUSTER_ENDPOINT}/v2/vectordb/collections/create" \
--header "Authorization: Bearer ${TOKEN}" \
--header "Content-Type: application/json" \
-d '{
"collectionName": "custom_quick_setup",
"dimension": 5,
"primaryFieldName": "my_id",
"idType": "VarChar",
"vectorFieldName": "my_vector",
"metricType": "L2",
"autoId": true,
"params": {
"max_length": "512"
}
}'
如果使用上述兩種方式建立的集合仍無法滿足您的需求,請考慮遵循「建立集合」中的程序。