-
Notifications
You must be signed in to change notification settings - Fork 0
vector_index.cpp
makr-code edited this page Dec 21, 2025
·
1 revision
# vector_index.cpp
**Stand:** 5. Dezember 2025
**Version:** 1.0.0
**Kategorie:** Src
---
Path: `src/index/vector_index.cpp`
**Purpose:** Verwaltung des ANN Vektorindex (VectorIndexManager). Unterstützt HNSW (nur wenn mit `THEMIS_HNSW_ENABLED` kompiliert), optionale Quantisierung und Persistenz/Auto‑Save.
**Kernkonzepte:**
- **VectorIndexManager:** zentrale Klasse für Index‑Lifecycle (init, add/update/remove, search, save/load).
- **Metriken:** COSINE (normalisiert) und L2 werden unterstützt.
- **Optional:** HNSW (abrufbar über Compile‑Flag), Quantisierung (embedding_q + embedding_scale) für Speicher/Performance‑Tradeoffs.
- **Persistenz:** speichert Index‑Artefakte unter einem AutoSave‑Pfad in Dateien wie `meta.txt`, `labels.txt`, `index.bin`.
**Wichtige API‑Funktionen (Übersicht):**
- `init(...)` — initialisiert/erstellt einen Index (Name/Dimension/Metrik/Optionen).
- `addEntity(...)` — fügt ein Entity mit Primärschlüssel und optionaler Embedding ein.
- `updateEntity(...)` — aktualisiert Felder oder Embedding eines existierenden Entities.
- `removeByPk(const std::string& pk)` — entfernt ein Objekt nach PK.
- `searchKnn(query_embedding, k, whitelist_ptr)` — führt eine k‑NN Suche aus und liefert (Status, Ergebnisse).
- `saveIndex()` / `loadIndex()` — persistiert bzw. lädt Index‑Daten auf/aus Disk.
- `rebuildFromStorage()` — baut Index aus persistenten Labels/Metadaten neu auf.
**Persistenz & Format:**
- Standard‑Speicherpfad: konfigurierbar via `setAutoSavePath(...)`.
- Erwartete Dateien: `meta.txt` (Index‑Metadaten JSON), `labels.txt` (pk/label mapping), `index.bin` (binäres HNSW/Index blob).
- Wichtig: Beim Laden wird Konsistenz geprüft; bei Fehlern kann ein Rebuild erforderlich sein.
**Performance / Tuning:**
- `efSearch` / `efConstruction` (wenn HNSW aktiv) beeinflussen Recall vs Throughput.
- Quantisierung (`embedding_q`) reduziert Speicher, kann aber Recall verschlechtern — Benchmarks notwendig.
- Rebuilding aus Storage ist teuer (I/O + CPU); für große Indices Wartungs‑Fenster empfehlen.
**Beispiel (Pseudocode):**
```cpp
// Index initialisieren
VectorIndexManager idx;
idx.init("chunks", dim, VectorIndexManager::Metric::COSINE);
// Entity anlegen
BaseEntity e = BaseEntity::fromFields("chunks:123", {{"embedding", embedding}});
idx.addEntity(e);
// Suche
auto [st, res] = idx.searchKnn(query, 10, nullptr);
for (auto &r : res) { printf("pk=%s score=%f\n", r.pk.c_str(), r.distance); }Empfohlene Ergänzungen / TODOs:
- Unit‑/Integration‑Tests für Recall/Precision mit/ohne Quantisierung.
- Dokumentation der genauen Signaturen (Header
include/index/verlinken). - Beispiel‑Benchmarks (Ingest‑Durchsatz, Query‑Latency, Speicherbedarf).
- Übersicht
- Home
- 📋 Dokumentations-Index
- 📋 Quick Reference
- 📊 Sachstandsbericht 2025
- 🚀 Features
- 🗺️ Roadmap
- Ecosystem Overview
- Strategische Übersicht
- Architektur
- Basismodell
- Storage & MVCC
- Indexe & Statistiken
- Query & AQL
- Caching
- Content Pipeline
- Suche
- Performance & Benchmarks
- Enterprise Features
- Qualitätssicherung
- Vektor & GNN
- Geo Features
- Sicherheit & Governance
- Überblick
- RBAC & Authorization
- RBAC
- Policies (MVP)
- Authentication
- Schlüsselverwaltung
- Verschlüsselung
- TLS & Certificates
- PKI & Signatures
- PII Detection
- Vault & HSM
- Audit & Compliance
- Security Audits & Hardening
- Competitive Gap Analysis
- Deployment & Betrieb
- Deployment
- Docker
- Tracing & Observability
- Observability
- Change Data Capture
- Operations Runbook
- Infrastructure Roadmap
- Horizontal Scaling Implementation Strategy
- Entwicklung
- Übersicht
- Code Quality Pipeline
- Developers Guide
- Cost Models
- Todo Liste
- Tool Todo
- Core Feature Todo
- Priorities
- Implementation Status
- Roadmap
- Future Work
- Next Steps Analysis
- AQL LET Implementation Guide
- Development Audit
- Sprint Summary (2025-11-17)
- WAL Archiving
- Search Gap Analysis
- Source Documentation Plan
- API Implementations
- Changefeed
- Security Development
- Development Overviews
- Publikation & Ablage
- Admin-Tools
- APIs
- Client SDKs
- Implementierungs-Zusammenfassungen
- Planung & Reports
- Dokumentation
- Release Notes
- Styleguide & Glossar
- Roadmap
- Changelog
- Source Code Documentation
- Übersicht
- Source Documentation
- Main
- Main (Detailed)
- Main Server
- Main Server (Detailed)
- Demo Encryption
- Demo Encryption (Detailed)
- API
- Authentication
- Cache
- CDC
- Content
- Geo
- Governance
- Index
- LLM
- Query
- Security
- Server
- Server README
- [VCCDB Design](src/server/VCCDB Design.md.md)
- Audit API Handler
- Auth Middleware
- Classification API Handler
- HTTP Server
- Keys API Handler
- PII API Handler
- Policy Engine
- Ranger Adapter
- Reports API Handler
- Retention API Handler
- SAGA API Handler
- SSE Connection Manager
- Storage
- Time Series
- Transaction
- Utils
- Archive