Conectarse a un servidor Milvus
Este tema describe cómo establecer una conexión cliente a un servidor Milvus y configurar las opciones comunes de conexión.
Requisitos previos
El SDK de su lenguaje instalado. Para más detalles, consulte Python SDK, Java SDK, Go SDK, o Nodejs SDK.
Una dirección de servidor Milvus (para local por defecto:
http://localhost:19530, puerto proxy 19530).Si la autenticación está activada, proporcione un token o un nombre de usuario + contraseña. Un token puede ser
username:password(por ejemplo,root:Milvus). Consulte Autenticar el acceso de usuarios y Crear usuarios y funciones para obtener más información.
Conectar por URI (autenticación desactivada)
Utilice la dirección del servidor Milvus (por ejemplo http://localhost:19530) para establecer una conexión.
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 '{}'
Conectar con credenciales (autenticación activada)
Proporcione un token de la forma "username:password" o por separado user y password. El admin incorporado por defecto es root:Milvus (cámbialo para producción).
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 '{}'
El formato del token es "<username>:<password>". En la documentación se indica explícitamente que root:Milvus es la credencial predeterminada, y en la guía Crear usuarios y funciones se trata la gestión de usuarios.
Configurar un tiempo de espera
Establece un tiempo de espera por defecto en la conexión del cliente:
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 '{}'
Para los SDK enumerados anteriormente, este tiempo de espera sólo se utiliza al establecer conexiones y no sirve como tiempo de espera predeterminado para otras operaciones de la API.
Para la API RESTful,
Request-Timeoutes un plazo por solicitud en segundos (a diferencia derpcDeadlineMsde Java ytimeoutde Node.js , que están en milisegundos), así que inclúyalo en cada llamada que necesite un plazo.
Conectarse a una base de datos específica
Elige la base de datos de destino durante la construcción con db_name. También puedes cambiar más tarde usando 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"
}'
Consulta la guía de bases de datos para crear, listar y describir bases de datos, y para tareas más amplias de gestión de bases de datos.