Was ist Weaviate?
Weaviate ist eine Open-Core-Vektordatenbank, die sowohl Datenobjekte als auch ihre Vektor-Embeddings gemeinsam speichert, sodass man nach Bedeutung, nach Keyword oder nach beidem gleichzeitig suchen kann. Die eigene GitHub-Beschreibung nennt es "eine Open-Source-, Cloud-native Vektordatenbank, die sowohl Objekte als auch Vektoren speichert". Anders als ein nachträglich an eine bestehende Datenbank angeflanschter Vektorindex ist Weaviate von Grund auf als vektor-nativer Speicher mit strukturiertem Schema, Filterung und Multi-Tenancy konzipiert.
- Kernfunktion: eine Datenbank, die Vektor-Embeddings zusammen mit strukturierten Objektdaten indexiert, abfragbar über REST, GraphQL oder gRPC
- Suchmodi: reine Vektorsuche (Nearest-Neighbor), BM25-Keyword-Suche und Hybrid-Suche, die beides in einer Abfrage kombiniert
- Vektorisierung: eingebaute Integrationsmodule für OpenAI-, Cohere-, HuggingFace-, Google- und Ollama-Embedding-Modelle, oder man liefert eigene, bereits berechnete Vektoren direkt
- Deployment: Docker, Docker Compose, Kubernetes/Helm, ein eingebetteter Python-Client für lokales Prototyping, oder der Managed Service Weaviate Cloud
- Entwickler: Weaviate B.V., ein Unternehmen mit Sitz in Amsterdam, Niederlande
- Kanonisches Repository: github.com/weaviate/weaviate — die Quelle für Versionshistorie, Lizenzdateien und Release Notes, auf die sich diese Rezension stützt
Projektgeschichte und Versions-Meilensteine von Weaviate
Weaviate wird seit mehreren Jahren aktiv weiterentwickelt und liefert inzwischen häufige Punkt-Releases, oft mehrere Minor-Versionen im selben Monat. Aus dem Projekt ist von einer reinen Vektorsuche-Engine eine breitere Plattform geworden, die auch generative Suche (RAG), Reranking, einen natürlichsprachlichen Query Agent und Enterprise-Funktionen wie rollenbasierte Zugriffskontrolle und Multi-Tenancy umfasst.
- 1v1.19 — Hybrid-Suche allgemein verfügbar
Why it matters: Kombinierte BM25-Keyword-Suche und Vektorsuche in einem einzigen Abfragetyp, ein Feature, das für Weaviates Positionierung gegenüber reinen Vektordatenbanken zentral bleibt. - 2v1.24 — Named Vectors
Why it matters: Erlaubte einem einzelnen Objekt mehrere Vektor-Repräsentationen (etwa eine pro Embedding-Modell oder eine pro Eigenschaft), nützlich für Multi-Model-RAG-Setups. - 3v1.25–v1.26 — Verbesserungen bei Multi-Tenancy und Replikation
Why it matters: Stärkte die Isolation zwischen Mandanten und die Datendauerhaftigkeit für produktive Multi-Kunden-Deployments. - 4v1.27–v1.28 — Verbesserungen der Vektorkompression (RQ/PQ)
Why it matters: Reduzierte den Speicherbedarf großer Deployments durch Kompression gespeicherter Vektoren, ein direkter Hebel für die Betriebskosten selbst gehosteter Cluster. - 5v1.29–v1.30 — Rollenbasierte Zugriffskontrolle (RBAC)
Why it matters: Fügte feingranulare Berechtigungen hinzu, eine Anforderung für viele Enterprise- und regulierte Deployments, die Weaviate auf eigener Infrastruktur betreiben. - 6v1.38 — Punkt-Release
Why it matters: Setzte das schnelle Release-Tempo des Projekts mit Performance-Arbeiten an Filterung und Modul-Metriken fort, laut der [offiziellen GitHub-Releases-Seite](https://github.com/weaviate/weaviate/releases). - 7v1.39
Why it matters: Fügte ein neues Generative-Meta-Modul hinzu sowie weitere Performance-Verbesserungen am HNSW-Index und bei Aggregate-Abfragen, laut der [offiziellen GitHub-Releases-Seite](https://github.com/weaviate/weaviate/releases). - 8v1.40 — Namespaces allgemein verfügbar
Why it matters: Namespaces trennen die Ressourcen und Daten verschiedener Nutzer auf einem gemeinsamen Cluster – ein Baustein für Bereitstellungen mit mehreren Teams, laut der [offiziellen GitHub-Releases-Seite](https://github.com/weaviate/weaviate/releases).
Was kann man mit Weaviate machen?
Weaviates Funktionsumfang dreht sich darum, Vektoren im großen Maßstab zu speichern und abzufragen, während strukturierte Filterung und Keyword-Suche in derselben Abfrage verfügbar bleiben. Hier ist, was jeder Teil laut Weaviates eigenem GitHub-README und Dokumentation tatsächlich leistet.
- Vektorsuche — Nearest-Neighbor-Suche über hochdimensionale Embeddings, gestützt auf einen HNSW-Index, zum Auffinden semantisch ähnlicher Objekte
- Hybrid-Suche — kombiniert Vektor-Ähnlichkeit mit BM25-Keyword-Scoring in einer einzigen Abfrage, nützlich wenn weder reine semantische noch reine Keyword-Suche allein die besten Ergebnisse liefert
- Strukturierte Filterung — filtert Vektorsuche-Ergebnisse nach Objekteigenschaften (Datumswerte, Zahlen, Strings, Geo-Koordinaten) in derselben Abfrage, statt Ergebnisse nachträglich im Anwendungscode zu verarbeiten
- Generative Suche (RAG) — übergibt abgerufene Objekte direkt an einen angebundenen LLM-Anbieter, um eine Antwort, Zusammenfassung oder Transformation der Ergebnisse zu erzeugen, ohne separate Orchestrierungsschicht
- Query Agent — übersetzt natürlichsprachliche Fragen laut Weaviates eigenen Produktseiten automatisch in optimierte Weaviate-Abfragen
- Vectorizer-Module — eingebaute Integrationen zur Generierung von Embeddings via OpenAI, Cohere, HuggingFace, Google und Ollama, oder man indexiert selbst berechnete Vektoren
- Multi-Tenancy und RBAC — isoliert Daten pro Mandant und steuert den Zugriff mit rollenbasierten Berechtigungen, ausgelegt auf produktive, Multi-Kunden- oder regulierte Deployments
- Horizontale Skalierung und Replikation — Sharding und Replikation von Daten über Knoten hinweg für größere Datensätze und höhere Verfügbarkeit in selbst gehosteten Clustern
Anwendungsbeispiele: Drei Wege, Weaviate zu nutzen
Dies sind konkrete Workflows, die auf Weaviates oben dokumentierten Funktionen basieren — keine hypothetischen Anwendungsfälle.
Eine vollständig lokale RAG-Pipeline mit Ollama betreiben
Weaviate über Docker Compose starten, das Modul text2vec-ollama so konfigurieren, dass es auf eine lokale Ollama-Instanz für Embeddings zeigt, und ein lokales LLM über Ollama für generative Suche anbinden. Jede Anfrage — Embedding, Speicherung, Abruf und Generierung — bleibt auf der eigenen Maschine oder im eigenen Netzwerk, ohne externe API-Aufrufe.
Keyword- und semantische Suche für Produkt- oder Dokumentensuche kombinieren
Einen Produktkatalog oder Dokumentenbestand sowohl mit Text-Eigenschaften als auch mit Vektor-Embeddings indexieren, dann eine einzige Hybrid-Suche-Abfrage stellen, die BM25-Keyword-Matching (gut für exakte Begriffe, SKUs oder Namen) mit Vektor-Ähnlichkeit (gut für konzeptionell verwandte Ergebnisse) verbindet, wobei der Alpha-Parameter das Gewicht zwischen beiden Modi steuert.
Ergebnisse der semantischen Suche nach strukturierten Metadaten filtern
Nach Objekten suchen, die einer Suchphrase semantisch ähnlich sind, während gleichzeitig nach einem publishDate nach einem bestimmten Datum oder einer category, die einem bestimmten Wert entspricht, gefiltert wird — Vektor-Ähnlichkeit und strukturierte Filterung in einer Anfrage kombiniert, statt nach dem Abruf clientseitig zu filtern.
Weaviate installieren: Docker, Kubernetes und eingebettet
Weaviate ist keine herunterladbare Desktop-App — es ist ein Datenbankserver, den man selbst betreibt oder als Managed-Cloud-Service nutzt. Die unten aufgeführten Installationswege stammen aus dem offiziellen GitHub-README und der Dokumentation — prüfen Sie diese Seiten immer direkt, da sich exakte Versions-Tags zwischen Releases ändern.
Methode | Befehl / Link |
|---|---|
| Docker (einzelner Container, schneller Test) | docker run -p 8080:8080 -p 50051:50051 cr.weaviate.io/semitechnologies/weaviate:1.40.3 |
| Docker Compose | Eine docker-compose.yml über den offiziellen Konfigurator erzeugen, dann docker compose up -d ausführen |
| Kubernetes / Helm | Offizieller Helm-Chart, laut Kubernetes-Installationsanleitung |
| Eingebettet (Python-Client) | Eingebettete lokale Instanz über weaviate-client, fürs Prototyping — siehe offizielle Doku |
| Weaviate Cloud (managed, optional) | console.weaviate.cloud — kein Self-Hosting nötig, nutzungsbasierte Preise mit kostenloser Stufe |
Weaviate stellt standardmäßig HTTP auf Port 8080 und gRPC auf Port 50051 bereit; prüfen Sie mit curl http://localhost:8080/v1/meta, ob die Instanz läuft. Weaviate selbst hat außer Docker oder Kubernetes keine feste Hardware-Mindestanforderung, aber nutzbare Performance im großen Maßstab hängt von der Datensatzgröße, dem gewählten Indextyp und davon ab, ob Vektorkompression aktiviert ist — eine kleine Collection läuft problemlos auf einem Laptop, während ein großer Produktionsindex einen Server benötigt, der auf Vektoranzahl und Dimensionalität ausgelegt ist.
Weaviate Preise und Lizenzierung
Self-Hosting des BSD-3-Clause-Kerns ist kostenlos; ein definierter Satz gesperrter Funktionen sowie der Managed Service Weaviate Cloud sind kostenpflichtig. Das ist ein wirklich geteiltes Modell, kein simples "Open Core mit Enterprise-Upsell" — prüfen Sie die genauen Bedingungen in der Datei LICENSE für Ihre eigene Compliance-Prüfung.
Self-Hosted (BSD-3-Clause-Kern)
- Was es kostet:
- Kostenlos
- Was es abdeckt:
- Die vollständige Vektordatenbank-Engine außerhalb des
wl/-Verzeichnisses — Vektorsuche, Hybrid-Suche, Filterung, die meisten Modul-Integrationen und selbst verwaltete Skalierung
Self-Hosted, gesperrte wl/-Funktionen
- Was es kostet:
- Erfordert einen kostenpflichtigen Weaviate-License-Schlüssel (Umgebungsvariable
LICENSE_KEY) - Was es abdeckt:
- Eine definierte Teilmenge an Funktionen im
wl/-Verzeichnis des Repositories — der Umfang kann sich zwischen Releases ändern, prüfen Sie dafür die Datei LICENSE
Weaviate Cloud (managed)
- Was es kostet:
- Nutzungsbasierte Preise mit kostenloser Stufe, laut weaviate.io
- Was es abdeckt:
- Ein vollständig verwalteter Cluster ohne Self-Hosting oder Lizenzschlüssel-Verwaltung; getrennt vom oben beschriebenen Self-Hosted-Lizenzmodell
PromptQuorums eigenes Software-Directory listete Weaviates Lizenz bislang schlicht als Open Source. Nach direkter Lektüre der Dateien LICENSE und LICENSE-BSD in Weaviates GitHub-Repository zum Zeitpunkt dieser Rezension wird damit die geteilte Struktur untertrieben: GitHubs eigene Repository-Metadaten weisen die Lizenz genau deshalb als "Other" aus, weil Kern-Code (BSD-3-Clause) und Code im wl/-Verzeichnis (proprietäre Weaviate License, schlüsselgesperrt) unterschiedlich lizenziert sind. Lesen Sie die LICENSE-Dateien selbst, bevor Sie sich für eine rechtliche Entscheidung auf diese Unterscheidung verlassen — der Lizenzumfang kann sich zwischen Releases ändern.
Weaviate vs. Qdrant
Weaviate und Qdrant gehören zu den am weitesten verbreiteten selbst hostbaren Vektordatenbanken, und sie werden häufig verglichen, weil beide einen kostenlosen, selbst gehosteten Kern plus eine optionale Managed-Cloud-Stufe bieten. Die klarsten Unterschiede liegen im Abfragemodell, der Lizenzstruktur und der API-Oberfläche.
Kernlizenz
- Weaviate:
- BSD-3-Clause, plus separate proprietäre Lizenz für Funktionen im
wl/-Verzeichnis - Qdrant:
- Apache-2.0 für die Kern-Engine — Details zur Lizenzierung im Qdrant-Rezension
Abfrage-APIs
- Weaviate:
- REST, GraphQL und gRPC
- Qdrant:
- REST und gRPC (kein GraphQL)
Hybrid-Suche
- Weaviate:
- Eingebaut, kombiniert Vektor- und BM25-Keyword-Suche in einer Abfrage
- Qdrant:
- Unterstützt über Sparse+Dense-Vektor-Fusion
Generative Suche / RAG-Hilfen
- Weaviate:
- Eingebautes Generative-Search-Modul, das direkt einen angebundenen LLM-Anbieter aufruft
- Qdrant:
- Kein eingebautes Kernfeature; wird üblicherweise mit einer externen Orchestrierungsschicht kombiniert
Datenmodell
- Weaviate:
- Schema-basierte Objekte mit benannten Eigenschaften und benannten Vektoren
- Qdrant:
- Points mit Payloads (flexibles JSON) und Vektoren
Managed-Cloud-Option
- Weaviate:
- Weaviate Cloud, nutzungsbasiert mit kostenloser Stufe
- Qdrant:
- Qdrant Cloud, nutzungsbasiert mit kostenloser Stufe
Wenn Ihre Priorität eine Datenbank ist, die auch den Schritt von Retrieval zu Generierung in einer Abfrage übernimmt (generative Suche) und zusätzlich GraphQL-Unterstützung bietet, deckt Weaviates Funktionsumfang von Haus aus mehr ab. Wenn Ihre Priorität ein einfacherer, einheitlich Apache-2.0-lizenzierter Kern ohne zu verfolgende Feature-Sperren ist, prüfen Sie Qdrant direkt. Beide werden aktiv weiterentwickelt; prüfen Sie aktuelle Funktions- und Preisdetails vor einer Entscheidung auf den jeweiligen Projektseiten.
Für wen eignet sich Weaviate?
Ob Weaviate passt, hängt davon ab, ob Sie eine schema-basierte Vektordatenbank mit eingebauter Hybrid- und generativer Suche wollen, und ob die geteilte BSD/proprietäre Lizenzierung für Ihre Organisation funktioniert.
Weaviate nutzen, wenn
- Sie eine selbst hostbare Vektordatenbank mit eingebauter Hybrid-Suche (Vektor + BM25-Keyword) in einer einzigen Abfrage wollen, statt zwei separate Systeme selbst zu kombinieren
- Sie generative Suche (RAG) innerhalb der Datenbankabfrage selbst erledigt haben wollen, ohne für einfache Anwendungsfälle eine separate Orchestrierungsschicht aufzusetzen
- Sie GraphQL als Abfrageoption neben REST und gRPC benötigen
- Sie die Flexibilität wollen, ein kleines, rein BSD-3-Clause-lizenziertes Deployment kostenlos zu betreiben und nur für einen Lizenzschlüssel zu zahlen, wenn Sie eine
wl/-gesperrte Funktion konkret benötigen - Sie später, falls Self-Hosting nicht mehr ausreicht, eine offizielle Managed-Cloud-Option (Weaviate Cloud) ohne Datenbankwechsel verfügbar haben möchten
Abwarten oder woanders schauen, wenn
- Sie für eine rechtliche oder Beschaffungs-Anforderung jede Funktion des Produkts unter einer einzigen, unveränderten Open-Source-Lizenz benötigen — Weaviates geteiltes BSD-3-Clause/proprietäres Modell erfüllt das in der jetzigen Form möglicherweise nicht; lesen Sie die LICENSE-Dateien für Ihren konkreten Fall direkt
- Sie den denkbar einfachsten reinen Vektorspeicher ohne Schema-Modellierung wollen — eine leichtgewichtigere eingebettete Option wie Chroma könnte für kleine Projekte im Prototyp-Stadium besser passen
- Sie bereits auf Apache-2.0-lizenzierte Infrastruktur standardisiert sind und einen zweiten Lizenztyp vermeiden möchten — siehe den Vergleich Weaviate vs. Qdrant oben
- Sie offiziellen Enterprise-Support mit vertraglichen SLAs statt Community-/Issue-Tracker-Support für die selbst gehostete, unbezahlte Stufe benötigen — dieses Support-Niveau ist in der Regel an Weaviate Cloud oder ein lizenziertes Deployment gebunden
Weaviate vs. andere Vektordatenbanken
Weaviate ist eine von mehreren selbst hostbaren Vektordatenbanken für RAG und semantische Suche. So reiht es sich neben anderen Optionen in diesem Bereich ein — siehe das Local LLM Software Directory für den vollständigen Katalog und den dedizierten Vergleich Weaviate vs. Qdrant oben für das engste Kopf-an-Kopf-Rennen.
- Qdrant — eine Apache-2.0-lizenzierte Vektordatenbank mit REST- und gRPC-APIs und starker Sparse+Dense-Hybrid-Suche; siehe den dedizierten Vergleichsabschnitt oben und den vollständigen Qdrant-Rezension.
- Milvus — eine Apache-2.0-lizenzierte Vektordatenbank für sehr große Deployments, mit einer breiteren Auswahl an Indextypen als die meisten Alternativen; alle Details im Milvus-Rezension.
- Chroma — eine leichtere, auf Embeddings fokussierte Vektordatenbank, die dank minimalem Setup für Prototyping und kleinere RAG-Projekte beliebt ist; siehe den Chroma-Rezension.
- txtai — eine eingebettete All-in-one-Bibliothek für semantische Suche und RAG, die die Vektorindexierung direkt in eine Python-Anwendung einbettet, statt als separater Server zu laufen; siehe den txtai-Rezension, falls ein eingebetteter Single-Process-Ansatz besser zu Ihrem Projekt passt als ein eigenständiger Datenbankserver.
- Pinecone — eine vollständig verwaltete, closed-source Vektordatenbank ohne jede Self-Hosting-Option, nützlich als Kontrastfall, wenn Sie speziell einen reinen Cloud-Anbieter mit selbst hostbaren Optionen wie Weaviate vergleichen möchten; siehe den Vergleich Pinecone vs. Weaviate vs. Qdrant vs. Chroma für eine direkte Vier-Wege-Gegenüberstellung.
Häufige Fehler bei der Bewertung von Weaviate
Die meiste Verwirrung um Weaviate entsteht durch dessen Lizenzstruktur, die Annahme, der Cloud-Service sei erforderlich, oder die Verwechslung mit einer simplen eingebetteten Bibliothek.
Fehler 1: Annehmen, Weaviate sei vollständig Open Source ohne Einschränkungen
Weaviates Kern ist BSD-3-Clause, aber ein definierter Satz von Funktionen im wl/-Verzeichnis des Repositories erfordert einen kostenpflichtigen Lizenzschlüssel zur Aktivierung, unter einer separaten proprietären Weaviate License. GitHubs eigene Repository-Metadaten weisen genau deshalb die Gesamtlizenz als "Other" aus. Lesen Sie die Datei LICENSE direkt, bevor Sie sich für eine rechtliche oder Beschaffungs-Entscheidung auf diese Unterscheidung verlassen.
Fehler 2: Annehmen, man müsse Weaviate Cloud nutzen, um Weaviate zu betreiben
Weaviate Cloud ist ein optionaler, separater Managed Service. Der BSD-3-Clause-Kern läuft vollständig auf der eigenen Infrastruktur über Docker, Docker Compose oder Kubernetes, ohne dass ein Weaviate-Cloud-Konto nötig ist.
Fehler 3: Weaviate wie eine simple eingebettete Bibliothek wie Chroma behandeln
Weaviate bietet zwar einen eingebetteten Python-Client für lokales Prototyping, aber das primäre Deployment-Modell ist ein eigenständiger Datenbankserver mit Schema, Multi-Tenancy, RBAC und horizontaler Skalierung — im Umfang näher an einer Produktionsdatenbank als an einem leichtgewichtigen eingebetteten Vektorspeicher.
Fehler 4: Annehmen, Vectorizer-Module hielten Daten standardmäßig vollständig lokal
Wird ein Vectorizer-Modul für einen Cloud-Embedding-Anbieter wie OpenAI oder Cohere konfiguriert, verlassen genau diese Embedding-Anfragen die eigene Infrastruktur. Für eine vollständig lokale Pipeline das Vectorizer-Modul stattdessen auf eine lokal gehostete Engine wie Ollama richten.
Häufig gestellte Fragen
Was ist Weaviate?
Weaviate (weaviate.io, Quellcode unter github.com/weaviate/weaviate) ist eine Open-Core-Vektordatenbank, die sowohl strukturierte Objekte als auch ihre Vektor-Embeddings speichert und Vektorsuche, BM25-Keyword-Suche, Hybrid-Suche sowie eingebaute generative Suche (RAG) unterstützt.
Ist Weaviate kostenlos?
Der unter BSD-3-Clause lizenzierte Kern ist zum Self-Hosting kostenlos. Ein definierter Satz von Funktionen im wl/-Verzeichnis des Repositories erfordert zur Aktivierung einen kostenpflichtigen Weaviate-License-Schlüssel. Weaviate Cloud, die Managed-Hosting-Option, ist ein separater, nutzungsbasierter Service mit kostenloser Stufe.
Ist Weaviate Open Source? Welche Lizenz kommt zum Einsatz?
Teilweise. Weaviates Kern ist unter BSD-3-Clause lizenziert. Ein definierter Satz von Funktionen im wl/-Verzeichnis des Repositories fällt unter eine separate, proprietäre Weaviate License, die erst mit einem kostenpflichtigen Lizenzschlüssel aktiviert wird. GitHubs Repository-Metadaten stufen die Gesamtlizenz deshalb als "Other" ein, statt als eine einzige, OSI-anerkannte Lizenz für die gesamte Codebasis.
Kann Weaviate vollständig offline oder air-gapped laufen?
Ja, für die Kerndatenbank selbst — sie läuft vollständig auf der eigenen Infrastruktur ohne erforderliche externe Aufrufe. Wird ein Vectorizer- oder Generative-Search-Modul für einen Cloud-Anbieter (OpenAI, Cohere und andere) konfiguriert, benötigen genau diese Aufrufe Internetzugang; für eine vollständig offline laufende Pipeline diese Module stattdessen auf eine lokal gehostete Engine wie Ollama richten.
Unterstützt Weaviate Hybrid-Suche?
Ja. Weaviate kombiniert Vektor-Ähnlichkeitssuche mit BM25-Keyword-Suche in einer einzigen Hybrid-Abfrage, mit einem einstellbaren Alpha-Parameter, um einen der Modi stärker zu gewichten.
Hat Weaviate eine GraphQL-API?
Ja. Weaviate stellt REST-, GraphQL- und gRPC-APIs bereit, mit offiziellen Client-Bibliotheken für Python, TypeScript/JavaScript, Go, Java und C#/.NET.
Wie installiert man Weaviate?
Der schnellste Weg ist ein einzelner Docker-Befehl (docker run -p 8080:8080 -p 50051:50051 cr.weaviate.io/semitechnologies/weaviate:<version>). Für den Produktivbetrieb Docker Compose oder den offiziellen Kubernetes/Helm-Chart verwenden; für lokales Prototyping in Python den eingebetteten Client. Details in der Installationstabelle oben.
Was ist Weaviate Cloud?
Weaviate Cloud ist Weaviate B.V.s optionaler, vollständig verwalteter Hosting-Service, nutzungsbasiert bepreist mit kostenloser Stufe. Er ist vom Self-Hosted-Lizenzmodell getrennt — Sie können den BSD-3-Clause-Kern dauerhaft selbst hosten, ohne jemals Weaviate Cloud zu nutzen.
Wer entwickelt Weaviate?
Weaviate wird von Weaviate B.V. entwickelt, einem Unternehmen mit Sitz in Amsterdam, Niederlande, mit einem aktiven Open-Source-Repository unter github.com/weaviate/weaviate.
Wie viele Sterne hat Weaviate auf GitHub?
Weaviates GitHub-Repository zeigt rund 16.900 Sterne und rund 1.400 Forks — die aktuelle Zahl im Live-Repository prüfen, da sie sich fortlaufend ändert.