Vector Index là gì?
Trong cơ sở dữ liệu vector, vector index giúp tổ chức các embedding để tìm kiếm tương đồng hiệu quả. Thay vì so sánh truy vấn với từng vector một (rất tốn thời gian), index sẽ thu hẹp phạm vi tìm kiếm đến những vector liên quan nhất.
Tại sao cần Vector Index?
Tìm kiếm hàng triệu vector mà không có index là điều không khả thi. Embedding có thể có hàng trăm hoặc hàng ngàn chiều.
➡️ Không có index: phải so sánh với mọi vector
➡️ Có index: chỉ so sánh với vector liên quan, giúp tăng tốc đáng kể
Các loại Index phổ biến
🔹 Vector Indexes
Dùng cho tìm kiếm tương đồng trong không gian nhiều chiều.
🔹 Inverted Indexes
Dùng cho tìm kiếm từ khóa truyền thống (BM25, exact match).
Các loại Vector Index trong Weaviate
🔸 HNSW (Hierarchical Navigable Small World)
👉 Phù hợp với: Dữ liệu lớn (>100k vector)
🔗 Tìm hiểu thêm
🔸 Flat Index
👉 Phù hợp với: Dữ liệu nhỏ (<10k vector), yêu cầu độ chính xác cao
🔗 Tìm hiểu thêm
🔸 Dynamic Index
👉 Phù hợp với: Ứng dụng đang phát triển, cần tối ưu tự động
🔗 Tìm hiểu thêm
Trade-offs khi chọn Index
Mỗi loại index có điểm mạnh và điểm yếu riêng:
- ⚡ Tốc độ vs 🎯 Độ chính xác
- 🧠 Bộ nhớ vs 🚀 Hiệu suất
- 🏗️ Thời gian xây dựng vs ⏱️ Thời gian truy vấn
➡️ Hãy chọn loại index phù hợp với nhu cầu cụ thể của bạn.
Khi nào nên bỏ qua Indexing?
- Dữ liệu nhỏ (<1000 vector)
- Yêu cầu độ chính xác tuyệt đối (ví dụ: pháp lý, y tế)
Trong các trường hợp này, tìm kiếm brute-force có thể nhanh hơn và chính xác hơn so với việc duy trì cấu trúc index.
Tóm tắt lựa chọn Index
✅ HNSW → Tốc độ cao, quy mô lớn
✅ Flat → Độ chính xác tuyệt đối, dữ liệu nhỏ
✅ Dynamic → Tối ưu tự động, ứng dụng đang phát triển
🔗 Tìm hiểu thêm về Vector Indexes