Skip to main content
AI & Machine Learning

Weaviate

Een open-source vectordatabase die vector search combineert met gestructureerde datafiltering en ingebouwde machine learning-modules—maakt semantisch zoeken, RAG en AI-native applicaties mogelijk.

Ook bekend als: Weaviate DB, Weaviate vectordatabase

Definitie

Weaviate is een open-source, cloud-native vectordatabase ontworpen om zowel vectoren als gestructureerde data-objecten op te slaan. Het onderscheidt zich door ingebouwde ML-modules (text2vec, img2vec) die automatisch embeddings genereren, waardoor externe embedding-pipelines overbodig worden. Weaviate gebruikt een GraphQL API voor queries, ondersteunt hybride zoekopdrachten (combineert BM25 keyword search met vector-gelijkenis), en biedt modulaire vectorizers voor verschillende embedding-modellen (OpenAI, Cohere, Hugging Face, lokale modellen). Oorspronkelijk ontwikkeld door SeMI Technologies (Nederland).

Waarom het belangrijk is

Weaviate vereenvoudigt AI-applicatieontwikkeling:

  • Ingebouwde vectorisatie — geen aparte embedding-pipeline nodig
  • Hybride zoekopdrachten — combineert keyword en semantisch zoeken in één query
  • GraphQL interface — ontwikkelaarsvriendelijke querytaal
  • Multi-modal — ondersteunt tekst, afbeeldingen en aangepaste datatypes
  • Schema-flexibiliteit — gestructureerde data naast vectoren
  • Productierijp — horizontale schaling, replicatie, multi-tenancy

Hoe het werkt

┌────────────────────────────────────────────────────────────┐
│                       WEAVIATE                              │
├────────────────────────────────────────────────────────────┤
│                                                            │
│  BELANGRIJKSTE ONDERSCHEIDER: INGEBOUWDE VECTORISATIE      │
│  ────────────────────────────────────────────────────      │
│                                                            │
│  ┌─────────────────────────────────────────────────────┐ │
│  │                                                      │ │
│  │  Andere Vector DBs:                                  │ │
│  │  ┌─────────┐   ┌─────────────┐   ┌────────────┐   │ │
│  │  │  Jouw   │   │  Embedding  │   │  Vector    │   │ │
│  │  │  App    │ → │  API        │ → │  DB        │   │ │
│  │  │         │   │  (OpenAI)   │   │  (Milvus)  │   │ │
│  │  └─────────┘   └─────────────┘   └────────────┘   │ │
│  │                                                      │ │
│  │      Je beheert embedding-generatie apart           │ │
│  │                                                      │ │
│  │                                                      │ │
│  │  Weaviate:                                           │ │
│  │  ┌─────────┐   ┌──────────────────────────────┐   │ │
│  │  │  Jouw   │   │         WEAVIATE             │   │ │
│  │  │  App    │ → │  ┌─────────────────────────┐│   │ │
│  │  │         │   │  │ text2vec-openai module  ││   │ │
│  │  │  "ruwe" │   │  │ (auto-genereert embed.) ││   │ │
│  │  │  tekst  │   │  ├─────────────────────────┤│   │ │
│  │  └─────────┘   │  │    Vector Opslag        ││   │ │
│  │                │  └─────────────────────────┘│   │ │
│  │                └──────────────────────────────┘   │ │
│  │                                                      │ │
│  │      Stuur tekst, Weaviate handelt vectorisatie af  │ │
│  │                                                      │ │
│  └─────────────────────────────────────────────────────┘ │
│                                                            │
│                                                            │
│  WEAVIATE ARCHITECTUUR:                                    │
│  ──────────────────────                                    │
│                                                            │
│  ┌─────────────────────────────────────────────────────┐ │
│  │                                                      │ │
│  │  ┌─────────────────────────────────────────────┐   │ │
│  │  │              API Laag                         │   │ │
│  │  │                                               │   │ │
│  │  │  ┌───────────┐  ┌───────────┐  ┌─────────┐ │   │ │
│  │  │  │  GraphQL  │  │   REST    │  │  gRPC   │ │   │ │
│  │  │  │  Query    │  │   CRUD    │  │  Proto  │ │   │ │
│  │  │  └───────────┘  └───────────┘  └─────────┘ │   │ │
│  │  └─────────────────────────────────────────────┘   │ │
│  │                         │                           │ │
│  │                         ▼                           │ │
│  │  ┌─────────────────────────────────────────────┐   │ │
│  │  │           Module Systeem                     │   │ │
│  │  │                                               │   │ │
│  │  │  Vectorizers:                                │   │ │
│  │  │  ┌──────────────┐ ┌──────────────┐         │   │ │
│  │  │  │ text2vec-    │ │ text2vec-    │         │   │ │
│  │  │  │ openai       │ │ huggingface  │         │   │ │
│  │  │  └──────────────┘ └──────────────┘         │   │ │
│  │  │  ┌──────────────┐ ┌──────────────┐         │   │ │
│  │  │  │ text2vec-    │ │ img2vec-     │         │   │ │
│  │  │  │ cohere       │ │ neural       │         │   │ │
│  │  │  └──────────────┘ └──────────────┘         │   │ │
│  │  │                                               │   │ │
│  │  │  Readers/Generators:                         │   │ │
│  │  │  ┌──────────────┐ ┌──────────────┐         │   │ │
│  │  │  │ qna-openai   │ │ generative-  │         │   │ │
│  │  │  │ (Q&A)        │ │ openai (RAG) │         │   │ │
│  │  │  └──────────────┘ └──────────────┘         │   │ │
│  │  └─────────────────────────────────────────────┘   │ │
│  │                         │                           │ │
│  │                         ▼                           │ │
│  │  ┌─────────────────────────────────────────────┐   │ │
│  │  │           Opslag Engine                      │   │ │
│  │  │                                               │   │ │
│  │  │  ┌─────────────────────────────────────┐   │   │ │
│  │  │  │         HNSW Vector Index            │   │   │ │
│  │  │  │  (in-memory voor snelheid)           │   │   │ │
│  │  │  └─────────────────────────────────────┘   │   │ │
│  │  │                                               │   │ │
│  │  │  ┌─────────────────────────────────────┐   │   │ │
│  │  │  │       Inverted Index (BM25)          │   │   │ │
│  │  │  │  (keyword search, filtering)         │   │   │ │
│  │  │  └─────────────────────────────────────┘   │   │ │
│  │  │                                               │   │ │
│  │  │  ┌─────────────────────────────────────┐   │   │ │
│  │  │  │      Object/Property Opslag          │   │   │ │
│  │  │  │  (gestr. data naast vectoren)        │   │   │ │
│  │  │  └─────────────────────────────────────┘   │   │ │
│  │  │                                               │   │ │
│  │  └─────────────────────────────────────────────┘   │ │
│  │                                                      │ │
│  └─────────────────────────────────────────────────────┘ │
│                                                            │
│                                                            │
│  HYBRIDE SEARCH (Unieke Feature):                          │
│  ────────────────────────────────                          │
│                                                            │
│  ┌─────────────────────────────────────────────────────┐ │
│  │                                                      │ │
│  │  Query: "machine learning best practices"           │ │
│  │                                                      │ │
│  │  Vector Search (semantisch):                        │ │
│  │  Vindt conceptueel vergelijkbare docs over:         │ │
│  │  • "ML deployment richtlijnen"                     │ │
│  │  • "AI model training tips"                        │ │
│  │                                                      │ │
│  │           +  FUSE (gewogen combinatie)              │ │
│  │                                                      │ │
│  │  Keyword Search (BM25):                             │ │
│  │  Vindt exacte keyword matches:                      │ │
│  │  • Docs met letterlijke frase                      │ │
│  │  • Technische documenten, code comments            │ │
│  │                                                      │ │
│  │  Resultaat: Beste van beide werelden               │ │
│  │  • Semantisch begrip + exacte matching             │ │
│  │  • Configureerbare alpha (vector vs keyword)       │ │
│  │                                                      │ │
│  └─────────────────────────────────────────────────────┘ │
│                                                            │
└────────────────────────────────────────────────────────────┘

Veelgestelde vragen

V: Wanneer Weaviate vs Milvus gebruiken?

A: Weaviate voor eenvoudigere ontwikkeling (ingebouwde vectorisatie, GraphQL), beter voor kleinere teams. Milvus voor maximale schaal (miljarden vectoren), GPU-acceleratie, en als je al embedding-pipelines hebt.

V: Hoe werkt Weaviate’s hybride search?

A: Combineert BM25 keyword scoring met vector-gelijkenis, fuseert resultaten met configureerbare alpha weight. Alpha=1.0 is puur vector; alpha=0.0 is puur keyword. Default 0.75 werkt goed voor de meeste RAG use cases.

V: Welke embedding-modellen ondersteunt Weaviate?

A: OpenAI, Cohere, Hugging Face, Google PaLM, lokale transformers, en aangepaste modellen via de API.

Gerelateerde termen


Referenties

Weaviate (2024), “Weaviate Documentation”, Weaviate. [Officiële documentatie]

van Hagen et al. (2021), “Weaviate: A Cloud-Native, Real-Time Vector Search Engine”, DB-Engines Blog. [Architectuur overzicht]

Weaviate (2023), “Hybrid Search Explained”, Weaviate Blog. [Hybride search deep dive]

SeMI Technologies (2024), “Weaviate Modules”, Weaviate. [Module ecosysteem]

References

Weaviate (2024), “Weaviate Documentation”, Weaviate. [Official documentation]

van Hagen et al. (2021), “Weaviate: A Cloud-Native, Real-Time Vector Search Engine”, DB-Engines Blog. [Architecture overview]

Weaviate (2023), “Hybrid Search Explained”, Weaviate Blog. [Hybrid search deep dive]

SeMI Technologies (2024), “Weaviate Modules”, Weaviate. [Module ecosystem]