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
milvus-io/milvusMilvus is a high-performance, distributed vector database built for scaling AI applications that require efficient search and organization of massive amounts of unstructured data.
- Project
milvus-io/pymilvusA Python SDK for Milvus, providing a programmatic interface to manage and search high-dimensional vector embeddings in the Milvus vector database.
- Project
milvus-io/milvus-liteMilvus Lite is a pure‑Python, local‑only version of the Milvus vector database. It provides a drop‑in `pymilvus`‑compatible API for storing dense and sparse vectors, scalar fields, and full‑text data, and supports similarity search, filtering, and hybrid (vector + text) queries. Designed for notebooks, tests, and small prototypes, it runs either as a local `.db` file, an embedded engine, or a lightweight gRPC server, and can later be swapped to a full Milvus deployment with minimal code changes.
- Project
Ontos-AI/knowhereKnowhere is an open‑source backend that parses PDFs, slides, Word docs, images, etc., into a hierarchy‑native memory graph. It offers dual‑track (text + vision) parsing, agent‑neutral retrieval APIs, and citation‑ready results, enabling agents to navigate and cite complex documents efficiently.
- Project
prabhuomkar/pytorch-cppA collection of C++ tutorials for LibTorch that helps deep learning researchers implement neural networks and machine learning models using the C++ frontend for PyTorch.