الاتصال بخادم ميلفوس
يصف هذا الموضوع كيفية إنشاء اتصال عميل بخادم Milvus وتكوين خيارات الاتصال الشائعة.
المتطلبات الأساسية
تثبيت SDK الخاص بلغتك. للحصول على التفاصيل، راجع Python SDK أو Java SDK أو Go SDK أو Nodejs SDK.
عنوان خادم Milvus (افتراضي محلي:
http://localhost:19530، منفذ الوكيل 19530).إذا تم تمكين المصادقة، قدم إما رمزًا مميزًا أو اسم مستخدم + كلمة مرور. يمكن أن يكون الرمز المميز
username:password(على سبيل المثال،root:Milvus). راجع مصادقة وصول المستخدم وإنشاء المستخدمين والأدوار للحصول على التفاصيل.
الاتصال بواسطة URI (تم تعطيل المصادقة)
استخدم عنوان خادم ميلفوس (على سبيل المثال 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" \
-H "Request-Timeout: 10" \
-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" \
-H "Request-Timeout: 10" \
-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: 10" \
--max-time 7 \
-d '{}'
بالنسبة لمجموعات تطوير البرمجيات المذكورة أعلاه، تُستخدم هذه المهلة فقط عند إنشاء الاتصالات ولا تُستخدم كمهلة افتراضية لعمليات واجهة برمجة التطبيقات الأخرى.
بالنسبة لواجهة برمجة تطبيقات RESTful API،
Request-Timeoutهي مهلة لكل طلب بالثواني (على عكس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" \
-H "Request-Timeout: 10" \
-d '{
"dbName": "analytics"
}'
راجع دليل قواعد البيانات لإنشاء قواعد البيانات وإدراجها ووصفها، ولمهام إدارة قواعد البيانات الأوسع نطاقًا.