LC-0 VIC’s default L1 store is LanceDB (vic_chunks under VIC_DB_PATH). For a second backend, VIC_VECTOR_BACKEND=milvus with pip install -e ".[milvus]" writes Milvus Lite (embedded local file, same MilvusClient API as standalone Milvus). index_meta.json records vector_backend, milvus_uri, and milvus_collection; the tiered pipeline calls milvus_store.search_milvus_rows instead of Lance.
- Set
VIC_VECTOR_BACKEND=milvusand installpymilvusvia the[milvus]extra. - Run
vic index --full(or bridgePOST /v1/index/startwithfull: true). Default DB file:<VIC_DB_PATH>/milvus_lite.db(override withVIC_MILVUS_URI/VIC_MILVUS_COLLECTION). vic ask/POST /v1/askuse the same Ollama embedding model as stored in metadata.
Operational notes: Milvus Lite is suitable for host-side demos and moderate corpora; see upstream limits (e.g. FLAT-style indexing). For distributed Milvus or AiSAQ-on-flash, point VIC_MILVUS_URI at your server URI and keep the same collection schema expectations (path, text, vector, scalar fields used in ingest).
For very large corpora or flash-resident ANN deployments, Milvus with an AiSAQ-style index remains a documented industry pattern (see docs/KIOXIA_ECOSYSTEM.md). Host-side Lite does not replace that story; it proves the adapter path in code.
The abstract VectorIndexBackend in src/lc0_vic/index/protocol.py describes the operational shape (search-by-embedding, chunk counts). Lance is the reference implementation today; Milvus Lite follows the same row semantics consumed by controller/pipeline.py.
When changing connection or schema defaults, update docs/API.md and docs/ARCHITECTURE.md.