zilliztech/knowhere

Vector search engine inside Milvus, integrating FAISS, HNSW, DiskANN.

What it solves

Knowhere addresses the need for a lightweight, high-performance vector search engine that can be embedded into larger systems. It serves as the internal core for Milvus, handling the heavy lifting of indexing and searching vector data.

How it works

Knowhere is written in C++ and provides vector indexes and brute-force search. It can be built with optional GPU support using cuVS. The project offers bindings for C ABI, Java JNI, and a Python wheel, allowing integration across different languages. The build process uses a Makefile with configurable flags for unit tests, debug mode, and custom compilers.

Who it’s for

Developers who need an embeddable vector search core, particularly those working on Milvus or similar systems. It is also for contributors who want to build and test Knowhere from source, as the repository provides comprehensive build and testing instructions.

Highlights

  • Acts as the internal core for Milvus, providing a reusable vector search engine.
  • Supports both CPU and GPU (cuVS) builds.
  • Exposes indexes, brute-force search, and named index blobs via C ABI and Java JNI bindings.
  • Builds a portable Python wheel for easy deployment.
  • Includes unit testing with AddressSanitizer support.

Related

  • Project
  • Project
  • Project
  • Project
  • Project