WEAVIATE · TECH
Weaviate: Open-Source-Vektor-Datenbank mit GraphQL und Multi-Modal-Modulen
Weaviate ist eine Apache-2.0-Vektor-DB in Go mit GraphQL- und REST-API. Mai 2026 v1.30+, EU-Region Frankfurt, native Hybrid-Suche, Multi-Modal-Module für Text und Bild.
Recherche & Faktencheck: DuneDive LLC · Stand: 2026-05
Was ist Weaviate?
Weaviate ist eine Open-Source-Vektor-Datenbank unter Apache-2.0-Lizenz, geschrieben in Go. Sie wurde 2019 von SeMI Technologies (heute Weaviate B.V.) gestartet und ist seit dem Mai-2026-Release auf Version 1.30+. Weaviate adressiert dieselbe Aufgabe wie Qdrant oder Milvus – hochdimensionale Embedding-Vektoren speichern und in Millisekunden nächste Nachbarn finden – unterscheidet sich aber an drei Stellen: GraphQL als primäre Abfrage-Sprache, ein Modul-System für Embeddings und Reranker direkt im Server, und native Hybrid-Suche (BM25 plus Dense) ohne externe Bausteine.
Das Modul-System ist die augenfälligste Eigenheit. Statt Embeddings extern zu berechnen und nur den Vektor zu übergeben, kann Weaviate ein Embedding-Modul (text2vec-openai, text2vec-cohere, text2vec-huggingface, multi2vec-clip) konfiguriert bekommen. Der Server nimmt dann Roh-Text oder Roh-Bilder entgegen und berechnet das Embedding intern. Für multi-modale Use-Cases – Treuhand-PDFs mit eingebetteten Tabellen-Scans oder Notar-Akten mit Unterschriften-Bildern – ist das ein klarer Vorteil gegenüber Setups, in denen Text und Bild getrennt vektorisiert werden müssen.
Die Cloud-Variante (Weaviate Cloud Services) ist seit 2024 in drei Tarifen verfügbar: Serverless Free, Standard ab USD 280/Monat und Enterprise. Eine EU-Region in Frankfurt steht zur Wahl. Die Self-Hosted-Variante läuft als Docker-Container oder Kubernetes-Helm-Chart auf eigener Hardware; persistente Daten landen in einem gemounteten Volume, Backups laufen über das Backup-Modul direkt in S3-kompatiblen Speicher.
Im CH-Treuhand-Kontext fällt Weaviate vor allem dann als erste Wahl auf, wenn das Team bereits mit GraphQL arbeitet, multi-modale Daten verarbeiten muss oder native Hybrid-Suche ohne separates BM25-Engine braucht.
Warum es wichtig ist
Treuhand-Buros arbeiten selten nur mit Reintext. Mandantendossiers enthalten gescannte Belege, handschriftliche Vermerke, fotografierte Quittungen und PDF-Anhänge mit Tabellen. Eine RAG-Pipeline, die diese Heterogenität abbildet, profitiert von einem Datenbank-System, das Text und Bild in derselben Collection halten kann.
Drei Eigenschaften machen Weaviate für dieses Profil interessant. Erstens: Multi-Modal-Module. text2vec-cohere und multi2vec-clip erlauben Text- und Bild-Embeddings in einer einzigen Collection mit gemeinsamem Vektor-Raum. Eine Anfrage „zeige mir Belege, die zu dieser Rechnung passen" kann sowohl Texthits als auch visuell ähnliche Scans liefern, ohne dass zwei getrennte Pipelines gebaut werden.
Zweitens: native Hybrid-Suche. Seit Version 1.20 kann Weaviate BM25-Keyword-Score und Dense-Vektor-Score in einer einzigen Anfrage kombinieren, mit konfigurierbarem Alpha-Gewicht zwischen 0 (nur Keyword) und 1 (nur Vektor). Für juristische Begriffe oder Treuhand-Fachwortschatz, bei dem exakte Treffer auf Begriffen wie „Art. 957a OR" wichtig sind, liefert das stabilere Resultate als reine Dense-Suche.
Drittens: EU-Region Frankfurt in der Cloud-Variante. Der Datenstandort ist in der Region wählbar; Mandantendaten verlassen damit den EU-Wirtschaftsraum nicht. Für reine CH-Anforderungen unter dem revidierten Datenschutzgesetz ist Frankfurt zwar nicht innerhalb der Landesgrenzen, aber im angemessenen Drittland – für die meisten KMU-Fälle akzeptabel. Wer strikt CH-Hosting braucht, geht auf die Self-Hosted-Variante in Hetzner Helsinki, Falkenstein oder bei einem Schweizer Provider wie Infomaniak.
Wie es funktioniert
Weaviate ist ein Single-Binary, das per HTTP/REST und per GraphQL erreichbar ist. Die zentrale Einheit ist die Class (entspricht Collection in Qdrant). Eine Class definiert: Property-Schema (mit Typ-Annotation), Vektor-Konfiguration (Modul oder externer Vektor), Index-Parameter und optionale Reranker-Module.
Beispiel: eine Class TreuhandDoc mit Properties title (text), client_id (int), date (date), confidentiality (text) und content (text). Vektor-Konfiguration text2vec-cohere mit Modell embed-multilingual-v3.0 – Weaviate berechnet das Embedding aus dem content-Feld automatisch beim Import.
Import per REST: POST /v1/objects mit Class-Name, Properties und optional einem vector-Array. Wird kein Vektor mitgeliefert, ruft Weaviate das konfigurierte Embedding-Modul auf. Batch-Import per /v1/batch/objects, typisch 100 Objekte pro Batch.
Abfrage per GraphQL: ein Get-Query mit nearText (semantische Suche), where (Filter) und limit. Beispiel: { Get { TreuhandDoc(nearText: {concepts: ["Mehrwertsteuer-Abrechnung Q1"]}, where: {path: ["client_id"], operator: Equal, valueInt: 42}, limit: 10) { title content client_id } } }. Antwort: eine Liste von Objekten mit den angefragten Feldern.
Hybrid-Suche per hybrid statt nearText: { Get { TreuhandDoc(hybrid: {query: "Art. 957a OR Aufbewahrung", alpha: 0.5}, limit: 10) { title content } } }. Alpha steuert das Gewicht – 0 ist reine BM25-Suche, 1 ist reine Vektor-Suche, 0.5 ist hybrid.
Multi-Tenant-Trennung läuft über das Tenancy-Feature seit Version 1.20. Eine Class kann mit multiTenancyConfig: {enabled: true} angelegt werden; jede Anfrage gibt dann einen tenant-Header mit. Daten zwischen Tenants sind physisch getrennt – wichtig für Treuhand-Setups mit strikter Mandanten-Isolation.
Backup-Module decken S3, GCS und Azure Blob ab. Ein Backup läuft per POST /v1/backups/{backend} und sichert eine oder mehrere Classes inklusive Schema und Daten. Wiederherstellung per POST auf den Restore-Endpoint, ebenfalls per Class.
Weaviate in 5 Schritten produktiv
- 01Docker-Compose-Stack mit Weaviate-Image und gemountetem Volume aufsetzen; gewünschte Module (text2vec-cohere, multi2vec-clip, backup-s3) in der ENV-Konfiguration aktivieren.
- 02Schema planen: pro Use-Case eine Class mit Property-Typen; Multi-Tenancy aktivieren, falls Mandanten-Trennung physisch nötig ist.
- 03Embedding-Modul-Schlüssel und Reranker konfigurieren; bei Cohere oder OpenAI als externer Provider ein TIA durchführen oder lokale Module bevorzugen.
- 04Ingestion-Pipeline bauen: Dokumente -> Properties -> Batch-Import. Bei Multi-Modal-Daten den Bild-Pfad zusätzlich als blob-Property übergeben.
- 05Backup-Modul mit S3-Ziel verbinden und tagliche Sicherung pro Class einrichten; Monitoring auf /v1/.well-known/ready und Prometheus-Metriken anbinden.
Wann Weaviate einsetzen
Weaviate ist die richtige Wahl, wenn (a) multi-modale Daten – Text plus Bild – in einer einzigen Collection gehalten werden sollen, (b) native Hybrid-Suche ohne separates BM25-Engine gebraucht wird, (c) GraphQL als Abfrage-Sprache zum Stack passt oder (d) Embedding-Berechnung im Datenbank-Server statt im Anwendungscode gewünscht ist.
Konkrete Fälle: ein RAG-Pipeline für Treuhand-Belegerkennung, bei der eingescannte Quittungen sowohl über OCR-Text als auch über Bild-Embedding (multi2vec-clip) gesucht werden sollen. Eine semantische Suche über Mandantendossiers mit Hybrid-Score, in der Fachbegriffe wie „Art. 957a OR" exakt gewichtet und Synonyme dennoch gefunden werden. Eine Empfehlungs-Pipeline für ähnliche Mandantenprofile mit Reranker-Modul.
Die Cloud-Variante in Frankfurt eignet sich für Pilot-Projekte ohne Hardware-Investment; produktiv wechselt man typisch auf Self-Hosted, sobald Datenvolumen oder Anfragen den Standard-Tarif (USD 280/Monat) überschreiten. Self-Hosted auf einem Hetzner-Server in Falkenstein oder Helsinki kostet rund CHF 30-80 pro Monat für bis zu 10 Mio. Vektoren.
Wann NICHT
Wenn das Team keine GraphQL-Erfahrung hat und nur REST-APIs gewohnt ist, ist Qdrant einfacher. Weaviates REST-API existiert, aber GraphQL ist der idiomatische Weg – die Lernkurve ist zusätzlich da. Für reine Text-RAG-Pipelines ohne Multi-Modal-Bedarf bringt Weaviate kaum einen Vorteil gegenüber dem leichteren Qdrant.
Ungeeignet auch bei sehr kleinen Datenbeständen unter 50.000 Einträgen – pgvector oder Chroma reichen, sind operativ einfacher und sparen einen separaten Server. Weaviate-Cluster lohnen erst ab ca. 5 Mio. Vektoren pro Node oder bei Multi-Region-Anforderungen.
Für Use-Cases mit sehr hohem Update-Druck (z.B. ein User-Profil, das sich pro Anfrage ändert) ist Weaviate, wie alle HNSW-basierten Vektor-DBs, nicht ideal. Updates auf bestehenden Vektoren erzwingen Index-Pflege; bei mehreren Tausend Updates pro Minute kann das Performance kosten.
Die Cloud-Variante hat eine Preiskurve, die nicht-linear ansteigt. Wer mit dem Standard-Tier startet und auf 50 Mio. Vektoren oder Multi-Region-Replikation wachsen will, landet schnell bei vierstelligen USD-Beträgen pro Monat. Vor dem Einstieg in die Cloud-Variante sollte die Kostenkurve für 12-24 Monate durchgerechnet werden.
Vor- und Nachteile
STÄRKEN
- Native Hybrid-Suche (BM25 plus Dense) in einer Anfrage ohne externe Tools
- Multi-Modal-Module für Text und Bild in derselben Collection
- Embedding-Modul im Server entlastet die Anwendung von Vektorisierung
- Cloud-Variante mit EU-Region Frankfurt, Self-Hosted Apache-2.0
SCHWÄCHEN
- GraphQL als Hauptabfragesprache erzwingt Lernkurve im REST-orientierten Team
- Cloud-Preise skalieren nicht-linear, ab Standard-Tier vierstellig möglich
- Externe Embedding-Provider (OpenAI, Cohere) erzeugen Drittland-Transfer
- Mehr Module = mehr Konfigurations-Oberfläche als bei Qdrant
Häufige Fragen
Was kostet Weaviate Cloud konkret?
Stand Mai 2026 startet Weaviate Cloud Serverless mit einem Free-Tier (Sandbox 14 Tage); Flex-Tier ab USD 25/Monat, Standard ab USD 280/Monat. Enterprise mit dediziertem Cluster auf Anfrage. Für eine 5-Personen-Treuhand mit 500.000 Vektoren und 200 Anfragen/Tag bleibt der Standard-Tier ausreichend. Self-Hosted auf Hetzner kostet rund CHF 30-80/Monat für dieselbe Last.
Wie unterscheidet sich Weaviate von Qdrant?
Beide sind Apache-2.0 und HNSW-basiert. Weaviate hat GraphQL, ein Modul-System für Embeddings im Server und native Hybrid-Suche. Qdrant ist in Rust, leichtgewichtiger im Betrieb, mit reiner REST/gRPC-API. Wer Multi-Modal oder GraphQL braucht, geht zu Weaviate. Wer reine Vektor-Suche mit minimalem Overhead will, bleibt bei Qdrant. Beide lassen sich self-hosten in der EU.
Welche Embedding-Modelle kann Weaviate intern aufrufen?
Stand Mai 2026: OpenAI (text-embedding-3-small/large), Cohere (embed-multilingual-v3.0), HuggingFace-Inference, Voyage, Mistral-AI, Google PaLM, Azure OpenAI, AWS Bedrock und lokale Modelle via text2vec-transformers (BGE, E5, GTE). Multi-Modal: multi2vec-clip, multi2vec-bind, ref2vec-centroid. Bei externen Providern muss ein Drittland-Transfer geprüft werden.
Kann ich Weaviate von Qdrant aus migrieren?
Ja. Export aus Qdrant per Scroll-API liefert Vektoren plus Payload. Ein Skript wandelt Payload-Felder in Weaviate-Properties um und schreibt sie per /v1/batch/objects. Wichtig: das Embedding-Modell muss gleich bleiben oder alle Vektoren neu berechnet werden. Typischer Aufwand für 1 Mio. Vektoren: ein halber Tag inkl. Spot-Checks.
Verwandte Themen
Quellen
- Weaviate documentation – concepts, modules, GraphQL API · 2026-05
- Weaviate Cloud pricing – Serverless, Flex, Standard, Enterprise · 2026-05
- Weaviate GitHub releases and changelog v1.30+ · 2026-05
- Weaviate blog – Hybrid search with BM25 and dense vectors · 2026-04
- ANN-Benchmarks – open methodology for nearest-neighbour search · 2026-03
PASSEND ZU IHREM STACK?