Milvus
Connect faz to a Milvus vector database. Intent-based JSON queries — search, query, get, count.
Milvus's connector uses the pymilvus client (specifically MilvusClient, the simplified high-level API). Queries are JSON with an intent field. The connector exposes the data plane only.
| Default port | Query language | Write support | Schema discovery | Driver |
|---|---|---|---|---|
| 19530 | Intent-based JSON | Yes (RBAC-gated) | Collection metadata | pymilvus |
Quick example
databases:
- name: <database> # used as --database <database> in queries
type: milvus
host: localhost
port: 19530
username: <username> # leave empty if Milvus auth is disabled
password: <password>
permissions:
- database: <database> # must match `name:` above
access: R
# access codes:
# R read only — search, query, get, count
# W write only — insert, upsert, delete (no reads — blocked at connector)
# RW read + write
# RA read + append — reads + insert
# RWA read + write, no DELETE
# A admin (incl. collection DDL — blocked at connector)See Permissions for the full model, per-table overrides, and the operation matrix.
faz query '{"intent":"search","vector":[<your-vector>],"limit":5}' --database <database> --table <collection> --language vectoruv run faz query '{"intent":"search","vector":[<your-vector>],"limit":5}' --database <database> --table <collection> --language vectorpython -m faz query '{"intent":"search","vector":[<your-vector>],"limit":5}' --database <database> --table <collection> --language vectorConfiguration
| Field | Type | Default | Notes |
|---|---|---|---|
host | string | localhost | Milvus host. |
port | integer | 19530 | Milvus gRPC port. |
database | string | "" | Milvus DB name (Milvus 2.3+ supports multiple databases). Empty uses the default. |
username | string | "" | Set when Milvus's RBAC is enabled. |
password | string | "" | Password. |
ssl | boolean | false | When true, uses TLS. |
extra | mapping | {} | Reserved. |
Capabilities
Supported intents:
| Intent | Op class | Notes |
|---|---|---|
search | SELECT | Vector similarity. vector, filter (boolean expression), limit. |
query | SELECT | Boolean-expression filter without vector similarity. |
get | SELECT | Fetch by primary key. |
count | SELECT | Total or filtered row count. |
Filter strings use Milvus's boolean-expression language (e.g. "price > 100 && stock < 50"). The connector passes them through to the client.
Schema discovery returns each collection's field schema. Field types include the standard scalars (INT8/16/32/64, FLOAT, DOUBLE, BOOL, VARCHAR, JSON, ARRAY) plus vector types (BINARY_VECTOR, FLOAT_VECTOR, FLOAT16_VECTOR, BFLOAT16_VECTOR).
Limitations
- Write intents are blocked:
insert,upsert,delete,drop_collection,create_collection. Manage Milvus collections outside faz. load_collectionand partition loading aren't reachable throughquery_simple. If a collection isn't loaded, queries error with "collection not loaded"; load it viapymilvusdirectly.- No streaming — large search results are buffered.
Troubleshooting
MilvusException: failed to connect — Milvus isn't listening on host:port. Verify with pymilvus's connections.connect.
Authentication failed / RBAC denied — credentials are wrong (or Milvus's RBAC denies the read for this user/role).
Collection not loaded — load the collection in Milvus before querying. faz doesn't auto-load.
Vector dimension mismatch — your vector length doesn't match the collection's configured dimension. Check via describe_collection to see the schema.
For the broader troubleshooting flow, see Connection failed.
Related
- Databases overview — cross-connector basics.
- Weaviate, Qdrant, Pinecone — sibling vector databases.