엔진 | Top-10 Recall | 평균 검색 속도 | 인덱스 유형 | 데이터 크기 지원 | 장점 요약 |
---|---|---|---|---|---|
FAISS | 🟢 0.97 | 🟢 <5ms | IVF, HNSW, PQ 등 | 매우 큼 (수억 벡터 이상) | 최고 성능, 연구/생산 모두 가능 |
ChromaDB | 🟢 0.95 | 🟢 ~8–10ms | FAISS or AnnLite | 중간 (수백만 벡터 적합) | LangChain/RAG 통합에 적합 |
pgvector | 🟡 0.90 | 🔴 30–100ms | IVFFlat, HNSW | 제한적 (수십만 ~ 백만) | SQL 기반 검색/통합 환경에 유리 |
용도 | FAISS | ChromaDB | pgvector |
---|---|---|---|
✅ 대규모 검색 (억 단위) | 🟢 최적 | 🟡 가능 | 🔴 부적합 |
✅ LangChain, RAG 통합 | 🟡 가능 | 🟢 매우 적합 | 🟡 가능 |
✅ SQL 기반 메타데이터 필터 | 🔴 불가 | 🟡 제한적 | 🟢 완전 지원 |
✅ 빠른 로컬 테스트 | 🟢 빠름 | 🟢 빠름 | 🟡 느림 |
🔥 FAISS:
최고 성능을 원할 경우. 대규모 벡터 검색 최적화. 단, 별도 인프라 구성 필요 (DB가 아님).
🌱 ChromaDB:
중간 규모 벡터 검색에 적합. LangChain, RAG 등에 쉽게 통합 가능. 설치 및 사용도 간편.
🏢 pgvector:
구조화된 SQL 쿼리와 벡터 검색을 함께 쓰고 싶을 때. 성능은 낮지만 통합 용이.