連接至 Milvus 伺服器
本主題描述如何建立用戶端與 Milvus 伺服器的連線,並設定常用的連線選項。
先決條件
已安裝您語言的 SDK。詳情請參閱Python SDK、Java SDK、Go SDK 或Nodejs SDK。
Milvus 伺服器位址 (本機預設:
http://localhost:19530,proxy 埠19530)。如果啟用了驗證,請提供令牌或使用者名稱 + 密碼。令牌可以是
username:password(例如:root:Milvus)。如需詳細資訊,請參閱驗證使用者存取及建立使用者與角色。
透過 URI 連線 (停用驗證)
使用 Milvus 伺服器位址 (例如http://localhost:19530) 建立連線。
from pymilvus import MilvusClient
client = MilvusClient("http://localhost:19530")
import io.milvus.v2.client.ConnectConfig;
import io.milvus.v2.client.MilvusClientV2;
ConnectConfig config = ConnectConfig.builder()
.uri("http://localhost:19530")
.build();
client = new MilvusClientV2(config);
import { MilvusClient } from '@zilliz/milvus2-sdk-node';
const client = new MilvusClient({
address: 'http://localhost:19530'
});
import "github.com/milvus-io/milvus/client/v2/milvusclient"
c, err := milvusclient.New(ctx, &milvusclient.ClientConfig{
Address: "localhost:19530",
})
# The RESTful API is stateless, so there is no persistent connection.
# Each request hits the server directly; the /collections/list endpoint
# doubles as a health check when you need to verify reachability.
export HOST="localhost:19530"
curl -X POST "http://${HOST}/v2/vectordb/collections/list" \
-H "Content-Type: application/json" \
-d '{}'
使用憑證連接(啟用驗證)
提供"username:password" 形式的憑證,或分別提供user 和password 。預設的內建管理員為root:Milvus (生產時請變更)。
from pymilvus import MilvusClient
# Token form
client = MilvusClient(
uri="http://localhost:19530",
token="root:Milvus",
)
# Or explicit user/password
client = MilvusClient(
uri="http://localhost:19530",
user="root",
password="Milvus",
)
import io.milvus.v2.client.ConnectConfig;
import io.milvus.v2.client.MilvusClientV2;
ConnectConfig config = ConnectConfig.builder()
.uri("http://localhost:19530")
.username("root")
.password("Milvus")
.build();
client = new MilvusClientV2(config);
import { MilvusClient } from '@zilliz/milvus2-sdk-node';
const client = new MilvusClient({
address: 'http://localhost:19530',
username: 'root',
password: 'Milvus'
});
import "github.com/milvus-io/milvus/client/v2/milvusclient"
c, err := milvusclient.New(ctx, &milvusclient.ClientConfig{
Address: "localhost:19530",
Username: "root",
Password: "Milvus",
})
export HOST="localhost:19530"
export TOKEN="root:Milvus"
curl -X POST "http://${HOST}/v2/vectordb/collections/list" \
-H "Authorization: Bearer ${TOKEN}" \
-H "Content-Type: application/json" \
-d '{}'
令牌格式為"<username>:<password>" 。說明文件明確註明root:Milvus 為預設憑證,「建立使用者與角色」指南涵蓋管理使用者。
設定逾時
設定用戶端連線的預設逾時時間:
from pymilvus import MilvusClient
client = MilvusClient(uri="http://localhost:19530", timeout=1000) # If not set, the timeout defaults to 10s
import io.milvus.v2.client.ConnectConfig;
import io.milvus.v2.client.MilvusClientV2;
ConnectConfig config = ConnectConfig.builder()
.uri("http://localhost:19530")
.rpcDeadlineMs(1000)
.build();
client = new MilvusClientV2(config);
import { MilvusClient } from '@zilliz/milvus2-sdk-node';
const client = new MilvusClient({
address: 'http://localhost:19530',
username: 'root',
password: 'Milvus',
timeout: 1000 // ms
});
// await client.listCollections({ timeout: 2000})
import "github.com/milvus-io/milvus/client/v2/milvusclient"
ctx, cancel := context.WithTimeout(context.Background(), time.Second)
defer cancel()
c, err := milvusclient.New(ctx, &milvusclient.ClientConfig{
Address: "localhost:19530",
})
export HOST="localhost:19530"
export TOKEN="root:Milvus"
# Request-Timeout is applied per-request (unit: seconds). --max-time
# caps the total curl wall-clock so the client gives up even if the
# server never responds.
curl -X POST "http://${HOST}/v2/vectordb/collections/list" \
-H "Authorization: Bearer ${TOKEN}" \
-H "Content-Type: application/json" \
-H "Request-Timeout: 5" \
--max-time 7 \
-d '{}'
對於上面列出的 SDK,此逾時僅在建立連線時使用,並不會作為其他 API 作業的預設逾時。
對於 RESTful API,
Request-Timeout是以秒為單位的每個要求的截止時間(不像 Java 的rpcDeadlineMs和 Node.jstimeout,是以毫秒為單位),因此在每個需要截止時間的呼叫中都包含它。
連接至特定資料庫
在建构过程中使用db_name 选择目标数据库。您也可以稍后使用using_database() 进行切换。
from pymilvus import MilvusClient
# Set the database when creating the client
client = MilvusClient(
uri="http://localhost:19530",
token="root:Milvus",
db_name="analytics",
)
# (Optional) Switch the active database later
# client.using_database("reports")
import io.milvus.v2.client.ConnectConfig;
import io.milvus.v2.client.MilvusClientV2;
ConnectConfig config = ConnectConfig.builder()
.uri("http://localhost:19530")
.username("root")
.password("Milvus")
.dbName("analytics")
.build();
client = new MilvusClientV2(config);
import { MilvusClient } from '@zilliz/milvus2-sdk-node';
const client = new MilvusClient({
address: 'http://localhost:19530',
username: 'root',
password: 'Milvus',
database: 'analytics'
});
// (Optional) Switch the active database later
// await milvusClient.useDatabase({
// db_name: 'reports',
//});
import "github.com/milvus-io/milvus/client/v2/milvusclient"
c, err := milvusclient.New(ctx, &milvusclient.ClientConfig{
Address: "localhost:19530",
DBName: "analytics",
APIKey: "root:Milvus",
})
// (Optional) switch the active database later with:
err = c.UseDatabase(ctx, milvusclient.NewUseDatabaseOption("reports"))
export HOST="localhost:19530"
export TOKEN="root:Milvus"
# Target a specific database by setting "dbName" in the request body.
# The RESTful API is stateless, so include "dbName" on every request
# that should run against a non-default database.
curl -X POST "http://${HOST}/v2/vectordb/collections/list" \
-H "Authorization: Bearer ${TOKEN}" \
-H "Content-Type: application/json" \
-d '{
"dbName": "analytics"
}'
有關建立、列出和描述資料庫,以及更廣泛的資料庫管理任務,請參閱資料庫指南。