Подключение к серверу Milvus
В этом разделе описано, как установить клиентское соединение с сервером Milvus и настроить общие параметры соединения.
Необходимые условия
Установлен SDK вашего языка. Подробнее см. в Python SDK, Java SDK, Go SDK или Nodejs SDK.
Адрес сервера Milvus (для локального по умолчанию:
http://localhost:19530, прокси-порт 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" \
-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 является учетной записью по умолчанию, а в руководстве Create Users & Roles рассказывается об управлении пользователями.
Настройка таймаута
Установите таймаут по умолчанию для клиентского соединения:
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 '{}'
Для SDK, перечисленных выше, этот таймаут используется только при установлении соединения и не служит таймаутом по умолчанию для других операций API.
Для RESTful API
Request-Timeout- это дедлайн для каждого запроса в секундах (в отличие от JavarpcDeadlineMsи 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"
}'
О создании, перечислении и описании баз данных, а также о других задачах по управлению базами данных читайте в руководстве по базам данных.