search_embeddingrag_retrievalGo

milvus

Milvus is a high-performance, cloud-native vector database built for scalable vector ANN search

42.3KStars
3.8KForks

Last Updated

2026年1月21日

milvus banner
license docker-pull-count fully-managed-milvus fully-managed-milvus tutorials discord twitter

What is Milvus?

🐦 Milvus is a high-performance vector database built for scale. It powers AI applications by efficiently organizing and searching vast amounts of unstructured data, such as text, images, and multi-modal information.

🧑‍💻 Written in Go and C++, Milvus implements hardware acceleration for CPU/GPU to achieve best-in-class vector search performance. Thanks to its fully-distributed and K8s-native architecture, Milvus can scale horizontally, handle tens of thousands of search queries on billions of vectors, and keep data fresh with real-time streaming updates. Milvus also supports Standalone mode for single machine deployment. Milvus Lite is a lightweight version good for quickstart in python with pip install.

Want to use Milvus with zero setup? Try out Zilliz Cloud ☁️ for free. Milvus is available as a fully managed service on Zilliz Cloud, with Serverless, Dedicated and BYOC options available.

For questions about how to use Milvus, join the community on Discord to get help. For reporting problems, file bugs and feature requests in GitHub Issues or ask in Discussions.

The Milvus open-source project is
under LF AI & Data Foundation, distributed with Apache 2.0 License, with Zilliz as its major contributor.

Quickstart

$ pip install -U pymilvus

This installs pymilvus, the Python SDK for Milvus. Use MilvusClient to create a client:

from pymilvus import MilvusClient
  • You can also try Milvus Lite for quickstart by installing pymilvus[milvus-lite]. To create a local vector database, simply instantiate a client with a local file name for persisting data:

    client = MilvusClient("milvus_demo.db")
    
  • You can also specify the credentials to connect to your deployed Milvus server or Zilliz Cloud:

    client = MilvusClient(
      uri="<endpoint_of_self_hosted_milvus_or_zilliz_cloud>",
      token="<username_and_password_or_zilliz_cloud_api_key>")
    

With the client, you can create collection:

client.create_collection(
    collection_name="demo_collection",
    dimension=768,  # The vectors we will use in this demo have 768 dimensions
)

Ingest data:

res = client.insert(collection_name="demo_collection", data=data)

Perform vector search:

query_vectors = embedding_fn.encode_queries(["Who is Alan Turing?", "What is AI?"])
res = client.search(
    collection_name="demo_collection",  # target collection
    data=query_vectors,  # a list of one or more query vectors, supports batch
    limit=2,  # how many results to return (topK)
    output_fields=["vector", "text", "subject"],  # what fields to return
)

Why Milvus

Milvus is designed to h

项目信息

主要语言Go
开源协议Apache License 2.0
所有者milvus-io