Repolode
unum-cloud

unum-cloud/USearch

Однофайловая библиотека на C++ для приближённого поиска ближайших соседей и кластеризации векторов с биндингами для Python, JavaScript, Rust, Java, Go, Swift и других языков.

Open source альтернатива:Pinecone

Звёзды
4,346
Форки
360
Открытые issues
110
Последний коммит
3 дня назад

Что это?

USearch — движок для поиска похожих объектов и кластеризации на основе алгоритма графов HNSW. Он индексирует векторы и поддерживает пользовательские метрики расстояния, поэтому подходит для семантического поиска, поиска по молекулярным отпечаткам или геопространственных запросов с расстоянием по формуле гаверсинусов. Ядро состоит из одного заголовочного файла C++11; также доступны биндинги для C, Python, JavaScript, Java, Rust, Go, Swift, C#, Objective-C и Wolfram.

Индекс может хранить векторы в форматах пониженной точности, таких как bf16, f16, e5m2 и i8, а также в бинарном формате для метрик Tanimoto и Hamming. Индексы можно сохранять в файл, поток или буфер с отображением в память, а также обслуживать с диска, не загружая целиком в RAM. При поиске можно применять функции-предикаты во время обхода графа; для небольших коллекций доступен точный режим полного перебора.

В проект также входят кластеризация методом K ближайших соседей на основе существующего индекса и операция join для нечёткого сопоставления один-к-одному или многие-ко-многим. Несколько баз данных и инструментов, в том числе ClickHouse и DuckDB, указывают его как бэкенд векторного индекса.

Ключевые возможности

  • 01Библиотека в одном заголовочном файле C++11 с небольшой кодовой базой
  • 02Приближённый поиск ближайших соседей на основе HNSW
  • 03Пользовательские метрики расстояния, включая JIT-компиляцию метрик на Python
  • 04Хранение с пониженной точностью, например bf16, f16, e5m2 и i8
  • 05Обслуживание индекса с диска или из файлов с отображением в память
  • 06Фильтрация предикатами во время обхода графа

Сценарии использования

  • Добавление семантического поиска по эмбеддингам в приложение или сервис
  • Встраивание векторного индекса в мобильное или клиентское приложение на разных платформах
  • Поиск похожих объектов по молекулярным отпечаткам или геопространственным координатам
  • Обслуживание очень больших индексов с диска для снижения затрат на RAM

Темы

Частые вопросы

Что такое USearch?
Однофайловая библиотека на C++ для приближённого поиска ближайших соседей и кластеризации векторов с биндингами для Python, JavaScript, Rust, Java, Go, Swift и других языков. USearch — движок для поиска похожих объектов и кластеризации на основе алгоритма графов HNSW. Он индексирует векторы и поддерживает пользовательские метрики расстояния, поэтому подходит для семантического поиска, поиска по молекулярным отпечаткам или геопространственных запросов с расстоянием по формуле гаверсинусов. Ядро состоит из одного заголовочного файла C++11; также доступны биндинги для C, Python, JavaScript, Java, Rust, Go, Swift, C#, Objective-C и Wolfram.
USearch можно использовать бесплатно? Какая у него лицензия?
USearch распространяется с открытым исходным кодом под лицензией Apache-2.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
USearch всё ещё поддерживается?
Активно поддерживается. Последний коммит в USearch — 18 окт. 2026 г..
Для чего можно использовать USearch?
Добавление семантического поиска по эмбеддингам в приложение или сервис Встраивание векторного индекса в мобильное или клиентское приложение на разных платформах Поиск похожих объектов по молекулярным отпечаткам или геопространственным координатам Обслуживание очень больших индексов с диска для снижения затрат на RAM
Где скачать USearch?
Исходный код и инструкции по установке — на GitHub: https://github.com/unum-cloud/USearch

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты