Qdrant는 시맨틱 검색과 추천을 위한 Rust 기반 벡터 유사도 검색 엔진이자 페이로드 필터링을 지원하는 벡터 데이터베이스입니다.
nmslib/hnswlib
HNSW 그래프 알고리즘을 사용해 빠른 근사 최근접 이웃 검색을 수행하는 Python 바인딩 포함 헤더 전용 C++ 라이브러리입니다.
- 스타
- 5,364
- 포크
- 862
- 열린 이슈
- 311
- 마지막 커밋
- 2개월 전
어떤 프로젝트인가요?
Hnswlib는 근사 최근접 이웃 검색을 위한 Hierarchical Navigable Small World(HNSW) 그래프의 헤더 전용 C++ 구현입니다. 고차원 벡터를 인덱싱해 쿼리 벡터와 가장 가까운 항목을 무차별 대입 방식보다 훨씬 빠르게 찾습니다. 대신 검색 결과는 정확한 최근접 항목이 아니라 근사치입니다.
라이브러리에는 NumPy 배열을 지원하고 L2, 내적, 코사인 거리를 사용할 수 있는 Python 바인딩이 포함되어 있습니다. 인덱스를 점진적으로 구축하고, 레이블을 다시 삽입해 갱신하고, 삭제 표시를 하며, 디스크에 저장하거나 디스크에서 불러올 수 있습니다. Python 인덱스는 pickle로 직렬화할 수도 있습니다. C++에서는 사용자 정의 거리 함수를 지정할 수 있습니다.
C++ 핵심 라이브러리는 C++11 외에 별도의 의존성이 없습니다. 최신 버전에는 스트림 기반 저장 및 불러오기 기능과, -fno-exceptions로 컴파일한 빌드에서 사용할 수 있는 선택적 예외 비활성화 API가 추가되었습니다.
핵심 기능
- 01C++11 외에 별도 의존성이 없는 헤더 전용 C++ 구현입니다.
- 02L2, 내적, 코사인 거리를 지원하는 NumPy 배열용 Python 바인딩입니다.
- 03점진적 삽입, 기존 레이블 갱신, 삭제 표시를 지원합니다.
- 04인덱스를 디스크에 저장하고 불러올 수 있으며, Python에서는 pickle도 지원합니다.
- 05불리언 함수로 검색 결과를 필터링하고 C++에서 사용자 정의 거리를 지정할 수 있습니다.
활용 사례
- 임베딩 벡터를 기반으로 시맨틱 검색 또는 추천 백엔드를 구축합니다.
- 특징 벡터를 사용해 유사한 이미지나 제품을 찾습니다.
- 대규모 의존성을 추가하지 않고 C++ 애플리케이션에 빠른 최근접 이웃 인덱스를 추가합니다.
- 항목을 자주 추가하거나 갱신하거나 삭제하는 벡터 인덱스를 관리합니다.
사용 전 알아둘 점
- README에 설명된 버전은 0.10.0rc2로, 릴리스 후보 버전이므로 안정 버전으로 간주해서는 안 됩니다.
- Python의 필터 검색은 GIL의 제약을 받으며 멀티스레드 모드에서 느리게 실행됩니다.
포함된 컬렉션
토픽
자주 묻는 질문
- hnswlib은(는) 무엇인가요?
- HNSW 그래프 알고리즘을 사용해 빠른 근사 최근접 이웃 검색을 수행하는 Python 바인딩 포함 헤더 전용 C++ 라이브러리입니다. Hnswlib는 근사 최근접 이웃 검색을 위한 Hierarchical Navigable Small World(HNSW) 그래프의 헤더 전용 C++ 구현입니다. 고차원 벡터를 인덱싱해 쿼리 벡터와 가장 가까운 항목을 무차별 대입 방식보다 훨씬 빠르게 찾습니다. 대신 검색 결과는 정확한 최근접 항목이 아니라 근사치입니다.
- hnswlib은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- hnswlib은(는) Apache-2.0 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- hnswlib은(는) 아직 유지보수되고 있나요?
- 6개월 이내 업데이트. hnswlib의 마지막 커밋은 2026년 9월 15일입니다.
- hnswlib은(는) 어디에 사용할 수 있나요?
- 임베딩 벡터를 기반으로 시맨틱 검색 또는 추천 백엔드를 구축합니다. 특징 벡터를 사용해 유사한 이미지나 제품을 찾습니다. 대규모 의존성을 추가하지 않고 C++ 애플리케이션에 빠른 최근접 이웃 인덱스를 추가합니다. 항목을 자주 추가하거나 갱신하거나 삭제하는 벡터 인덱스를 관리합니다.
- hnswlib은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/nmslib/hnswlib
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
대규모 근사 최근접 이웃 벡터 검색을 위한 C++ 라이브러리로, 인덱스 구축·검색·분산 서빙 도구를 제공합니다.
pgvector에 DiskANN 기반 인덱스와 라벨 필터링을 추가해 벡터 검색을 더 빠르고 저렴하게 만드는 Rust 기반 Postgres 확장입니다.
관계형 데이터와 함께 임베딩을 저장하고 쿼리할 수 있는 Postgres용 오픈 소스 벡터 유사도 검색 확장 프로그램입니다.
Python, JavaScript, Rust, Java, Go, Swift 등 바인딩을 제공하는 근사 최근접 이웃 벡터 검색 및 클러스터링용 단일 파일 C++ 라이브러리입니다.
GPU 가속 옵션을 제공하는 C++ 라이브러리로, Python 바인딩을 통해 dense vector의 유사도 검색과 클러스터링을 효율적으로 수행합니다.