milvus-io/milvus-lite
A lightweight version of Milvus
Milvus Lite – 빠른 개요
정의: Milvus Lite는 Milvus 벡터 데이터베이스의 순수 Python, 로컬 전용 버전입니다. 전체 Milvus 서버나 C++ 구성 요소 없이도 벡터, 스칼라 필드, 텍스트를 저장하고 유사도 검색, 필터링 및 하이브리드(벡터+텍스트) 쿼리를 실행할 수 있습니다.
중요성: 개발자는 노트북, 단위 테스트 또는 소규모 프로토타입을 위해 가볍고 설치가 쉬운 데이터베이스가 필요한 경우가 많습니다. Milvus Lite는 Milvus의 pymilvus API를 모방하므로, 이를 사용하여 작성된 코드는 최소한의 변경으로 프로덕션 환경의 Milvus 배포(독립형, 분산형 또는 Zilliz Cloud)로 전환할 수 있습니다.
주요 기능:
- 로컬 스토리지 – WAL, memtables 및 Parquet 세그먼트를 갖춘 LSM-tree 스타일 엔진을 사용하여 단일
.db파일(또는 디렉토리)에 데이터를 저장합니다. - 벡터 검색 – FAISS 인덱스(HNSW, IVF 등)를 통한 밀집 벡터 검색 및 정확한 내적 또는 BM25 스코어링을 통한 희소 벡터 검색.
- 전체 텍스트 및 하이브리드 검색 – 내장된 BM25 분석기, 중국어용 선택적 Jieba, 벡터와 텍스트 점수를 결합하는 기능.
- 풍부한 스키마 – 다양한 스칼라 유형, 동적 필드, JSON, 배열, 지오메트리(WKT) 및 OpenAI 텍스트 임베딩과 같은 함수 지원.
- gRPC 어댑터 – 로컬 Milvus 호환 서버를 실행하여 여러 Python 프로세스가 동일한 데이터베이스를 공유할 수 있도록 지원.
- 순수 Python – 모든 핵심 로직이 Python으로 작성되어 명확한 스택 추적과 쉬운 검사가 가능.
일반적인 사용법:
from pymilvus import MilvusClient
client = MilvusClient("./demo.db")
client.create_collection("docs", dimension=4)
client.insert("docs", [{"id":1, "vector":[0.1,0.2,0.3,0.4], "text":"python tutorial"}])
results = client.search("docs", data=[[0.1,0.2,0.3,0.4]], limit=2)
서버(milvus-lite server)를 시작하고 uri="http://127.0.0.1:19530"을 통해 연결하거나, 임베디드 엔진 API(from milvus_lite import MilvusLite)를 직접 사용할 수도 있습니다.
제한 사항: 단일 프로세스 쓰기, 인증 없음, 분산 확장 없음, 바이너리/float16 벡터 미지원, 일부 고급 Milvus 기능(예: 곱 양자화 인덱스, 공간 인덱스) 누락.
저장소 요약 (README 참조)
| 항목 | 세부 정보 |
|---|---|
| 라이선스 | Apache 2.0 |
| 언어 | Python 3.10+ |
| 설치 | pip install -U milvus-lite (또는 pymilvus[milvus-lite]) |
| 핵심 의존성 | pyarrow, numpy, faiss-cpu, grpcio |
| 주요 구성 요소 | Adapter (gRPC), Engine (스토리지, 검색, 인덱스, 분석기, 함수, 스키마) |
| 지원 데이터 유형 | 밀집 및 희소 벡터, BOOL, 정수, FLOAT, DOUBLE, VARCHAR, JSON, ARRAY, GEOMETRY, TIMESTAMPTZ |
| 검색 메트릭 | COSINE, L2, IP, BM25 |
| 인덱스 | HNSW, IVF, FLAT, BRUTE_FORCE, 희소 역색인, 스칼라 역색인 |
| 기능 | CRUD, 파티션, 별칭, 스냅샷, 하이브리드 검색, 리랭킹, 전체 텍스트 검색, 지오메트리 필터 |
| 실행 모드 | 로컬 .db 파일, 임베디드 엔진 API, 로컬 gRPC 서버 |
| 문서 및 테스트 | docs/ 내 설계 문서, OS 및 Python 3.10-3.13 전반에 걸친 광범위한 CI |
| 일반 사용자 | 노트북 개발자, CI 테스트, 소규모 AI 앱, 전체 서버 없이 Milvus 호환 API가 필요한 사용자 |
누가 사용하면 좋을까요?
- 데이터 과학자: Jupyter에서 개념 증명(PoC) 유사도 검색 파이프라인을 구축하는 분.
- 엔지니어: 실제 Milvus 클러스터와 통신할 코드를 위한 단위 또는 통합 테스트를 작성하는 분.
- 학생: Docker나 복잡한 설치 없이 로컬에서 벡터 데이터베이스를 실험하고 배우고 싶은 분.
빠른 시작 체크리스트
pip install "pymilvus[milvus-lite]".db파일 경로를 사용하여 클라이언트를 생성합니다.- 컬렉션 스키마를 정의합니다(또는 Milvus가 자동으로 생성하도록 합니다).
- 벡터 / 텍스트 / 스칼라 필드를 삽입합니다.
- 필요에 따라
search,query또는delete를 실행합니다. - 다중 프로세스 작업이 필요한 경우,
milvus-lite server --data-dir ./data --port 19530을 시작하고 클라이언트를 해당 URI로 지정합니다.
위의 모든 정보는 프로젝트의 README에서 직접 가져온 것이며, 외부적인 가정은 추가되지 않았습니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트