Qdrant — движок поиска векторов по сходству и векторная база данных на Rust с фильтрацией по payload для семантического поиска и рекомендаций.
nmslib/hnswlib
Header-only библиотека на C++ с привязками для Python для быстрого приближённого поиска ближайших соседей с помощью алгоритма HNSW.
- Звёзды
- 5,364
- Форки
- 862
- Открытые issues
- 311
- Последний коммит
- 2 месяца назад
Что это?
Hnswlib — header-only реализация графов Hierarchical Navigable Small World (HNSW) на C++ для приближённого поиска ближайших соседей. Она индексирует векторы высокой размерности, позволяя находить ближайшие к вектору запроса совпадения гораздо быстрее, чем при полном переборе, но результаты при этом будут приблизительными, а не точными.
В библиотеку входят привязки для Python, работающие с массивами NumPy и поддерживающие расстояния L2, скалярное произведение и косинусное расстояние. Индексы можно строить постепенно, обновлять повторной вставкой меток, помечать как удалённые, а также сохранять на диск и загружать с него. Индексы Python также можно сериализовать с помощью pickle. В C++ можно задавать собственные функции расстояния.
Ядро на C++ не имеет зависимостей, кроме C++11. В последних версиях добавлены сохранение и загрузка через потоки, а также необязательный API без исключений для сборок с флагом -fno-exceptions.
Ключевые возможности
- 01Реализация на C++ в одном заголовочном файле без зависимостей, кроме C++11.
- 02Привязки для Python, работающие с массивами NumPy и поддерживающие расстояния L2, скалярное произведение и косинусное расстояние.
- 03Постепенная вставка, обновление существующих меток и пометка элементов как удалённых.
- 04Сохранение индексов на диск и загрузка с диска, а также поддержка pickle в Python.
- 05Поиск с фильтрацией с помощью булевой функции и пользовательские функции расстояния в C++.
Сценарии использования
- Создание бэкенда семантического поиска или рекомендаций на основе векторов эмбеддингов.
- Поиск похожих изображений или товаров по их векторным признакам.
- Добавление быстрого индекса ближайших соседей в приложение на C++ без подключения крупной зависимости.
- Поддержка векторного индекса, в который часто добавляют, обновляют или из которого удаляют элементы.
Что важно знать
- В README описана версия 0.10.0rc2 — кандидат на выпуск, который не следует считать стабильным релизом.
- Фильтрованный поиск в Python ограничен GIL и работает медленно в многопоточном режиме.
В подборках
Темы
Частые вопросы
- Что такое hnswlib?
- Header-only библиотека на C++ с привязками для Python для быстрого приближённого поиска ближайших соседей с помощью алгоритма HNSW. Hnswlib — header-only реализация графов Hierarchical Navigable Small World (HNSW) на C++ для приближённого поиска ближайших соседей. Она индексирует векторы высокой размерности, позволяя находить ближайшие к вектору запроса совпадения гораздо быстрее, чем при полном переборе, но результаты при этом будут приблизительными, а не точными.
- hnswlib можно использовать бесплатно? Какая у него лицензия?
- hnswlib распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- hnswlib всё ещё поддерживается?
- Обновлялся за последние 6 месяцев. Последний коммит в hnswlib — 15 сент. 2026 г..
- Для чего можно использовать hnswlib?
- Создание бэкенда семантического поиска или рекомендаций на основе векторов эмбеддингов. Поиск похожих изображений или товаров по их векторным признакам. Добавление быстрого индекса ближайших соседей в приложение на C++ без подключения крупной зависимости. Поддержка векторного индекса, в который часто добавляют, обновляют или из которого удаляют элементы.
- Где скачать hnswlib?
- Исходный код и инструкции по установке — на GitHub: https://github.com/nmslib/hnswlib
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
Библиотека на C++ для масштабного приближённого поиска ближайших соседей по векторам с инструментами для построения индексов, поиска и распределённого обслуживания запросов.
Расширение PostgreSQL на Rust с индексом на базе DiskANN и фильтрацией по меткам для более быстрого и дешёвого векторного поиска на основе pgvector.
Расширение с открытым исходным кодом для поиска векторов по сходству в Postgres: храните эмбеддинги и выполняйте поиск рядом с реляционными данными.
Однофайловая библиотека на C++ для приближённого поиска ближайших соседей и кластеризации векторов с биндингами для Python, JavaScript, Rust, Java, Go, Swift и других языков.
Библиотека на C++ с привязками для Python для быстрого поиска похожих объектов и кластеризации плотных векторов, с опциональным ускорением на GPU.