Vector-database
Een vector-database is een database die numerieke representaties van gegevens – zogenaamde embeddings – opslaat, indexeert en doorzoekt op basis van gelijkenis. Hierdoor kan inhoud worden gevonden die semantisch vergelijkbaar is, ook al worden er verschillende termen of formuleringen gebruikt.
Vector databases worden vooral ingezet wanneer grote hoeveelheden ongestructureerde gegevens, zoals teksten, afbeeldingen of audiobestanden, moeten worden doorzocht op inhoudelijke gelijkenis. Typische toepassingsgebieden zijn semantisch zoeken, aanbevelingssystemen en Retrieval-Augmented Generation (RAG).
Het belangrijkste over vector-databases in het kort
- Een vector-database slaat embeddings op en doorzoekt deze.
- Ze zoekt inhoud op basis van semantische gelijkenis in plaats van alleen op trefwoorden.
- Belangrijke toepassingsgebieden zijn RAG, semantisch zoeken en aanbevelingssystemen.
- Methoden zoals ANN en HNSW maken snelle zoekopdrachten op basis van gelijkenis in grote hoeveelheden gegevens mogelijk.
- Een aparte vectordatabase is niet altijd nodig. Ook PostgreSQL met pgvector of systemen met geïntegreerde vectorzoekfunctie kunnen volstaan.
- De juiste oplossing hangt af van de hoeveelheid gegevens, de prestaties, de hosting, de kosten en de operationele inspanningen.
Wat is een vectordatabase?
Een vector-database, ook wel vectordatabase genoemd, is een databasesysteem voor het opslaan en doorzoeken van vectoren. Deze vectoren bestaan uit numerieke waarden en vertegenwoordigen bijvoorbeeld teksten, afbeeldingen, audiobestanden of producten. Het belangrijkste verschil met een klassieke database zit in de manier waarop er wordt gezocht. Een vector-database zoekt naar nabijheid in een wiskundige vectorruimte. Daardoor kan het inhoud als vergelijkbaar herkennen, ook al worden er verschillende termen gebruikt.
Wat zijn embeddings?
Embeddings zijn numerieke weergaven van inhoud. Een embeddingmodel zet bijvoorbeeld een tekst om in een lange reeks getallen. Inhoud met een vergelijkbare betekenis ligt vervolgens relatief dicht bij elkaar in de vectorruimte. De vector-database genereert deze betekenis doorgaans niet zelf. Ze slaat de gegenereerde embeddings op, indexeert ze en maakt ze efficiënt doorzoekbaar. Daarnaast worden vaak metagegevens zoals categorie, bron, taal, datum of toegangsrechten opgeslagen. Zo kan semantische gelijkenis worden gecombineerd met klassieke filters.
Eenvoudig voorbeeld van een vectorzoekopdracht
Stel dat een kennisdatabase een paragraaf bevat met de zin „De herroepingstermijn bedraagt 14 dagen“. Als een gebruiker zoekt op „Hoe lang kan ik mijn bestelling retourneren?“, komen de gebruikte woorden slechts gedeeltelijk overeen. Een geschikt embeddingmodel kan beide inhoudselementen niettemin als semantisch vergelijkbaar weergeven.
De zoekopdracht en de opgeslagen inhoud worden hiervoor als vectoren weergegeven. De vector-database vergelijkt hun posities in de vectorruimte en geeft die inhoud weer waarvan de vectoren bijzonder veel lijken op de zoekopdracht. Op deze manier kan een zoekopdracht relevante resultaten opleveren zonder afhankelijk te zijn van identieke trefwoorden.
Hoe werkt een vectordatabase?
- Eerst worden de brongegevens omgezet in embeddings. Bij langere documenten wordt de inhoud hiervoor vaak opgedeeld in kleinere delen, zogenaamde ‘chunks’.
- Vervolgens slaat de vector-database deze vectoren op en indexeert ze. Voor grote hoeveelheden gegevens worden methoden zoals Approximate Nearest Neighbor Search (ANN) en indexstructuren zoals HNSW gebruikt. Deze voorkomen dat bij elke zoekopdracht elke opgeslagen vector volledig moet worden vergeleken.
- Ook de zoekopdracht van de gebruiker wordt omgezet in een embedding. De database zoekt vervolgens naar vectoren met een zo groot mogelijke gelijkenis. Voor de berekening kan bijvoorbeeld gebruik worden gemaakt van cosinusgelijkenis of euclidische afstand.
Het resultaat is geen zuivere trefwoordmatch, maar een beoordeling van de semantische gelijkenis. In de praktijk wordt vectorzoek vaak gecombineerd met trefwoordzoekopdrachten of metadatfilters. Deze hybride zoekmethode is bijvoorbeeld belangrijk wanneer er rekening moet worden gehouden met productnummers, eigennamen of exacte vaktermen. Vectorzoek vervangt trefwoordzoekopdrachten niet, maar breidt de zoeklogica uit.
Waarvoor worden vector-databases gebruikt?
Bij RAG zoekt het systeem eerst relevante informatie uit een kennisbank en geeft deze vervolgens als context door aan een Large Language Model. Een vector-database kan daarbij de semantische opvraaglaag vormen.
Gebruikers kunnen zoeken op betekenis in plaats van op exacte woordcombinaties. Dit is vooral handig bij natuurlijke of vage zoekopdrachten.
Producten, inhoud of gebruikersprofielen kunnen als vectoren worden weergegeven. Hierdoor kunnen systemen vergelijkbare inhoud of passende aanbevelingen vaststellen.
Ook afbeeldingen, audiobestanden en andere media kunnen als vectoren worden weergegeven en op gelijkenis worden doorzocht.
Waarom zijn vector-databases belangrijk voor RAG?
Grote taalmodellen zijn niet automatisch op de hoogte van interne documenten, actuele productinformatie of specifieke bedrijfskennis. RAG vult het model daarom aan met een opzoekproces.
Een vraag van een gebruiker wordt omgezet in een embedding en vergeleken met de opgeslagen documenten. De meest relevante tekstfragmenten worden vervolgens als context doorgegeven aan het taalmodel.
Wat een vectordatabase niet is Een vector-database vervult een duidelijk afgebakende taak: ze slaat vectoren op, indexeert ze en maakt het mogelijk om ze op basis van gelijkenis efficiënt te doorzoeken. Ze neemt daarmee echter niet automatisch alle andere onderdelen van een AI-toepassing voor haar rekening.
Een vector-database genereert zelf geen teksten, antwoorden of samenvattingen. Bij toepassingen zoals RAG levert deze relevante informatie, terwijl het daadwerkelijke genereren van tekst bijvoorbeeld door een Large Language Model gebeurt.
De semantische vectoren worden doorgaans gegenereerd door een apart embeddingmodel. De vectordatabase slaat deze vectoren op, indexeert ze en maakt ze vervolgens doorzoekbaar.
Vector-databases zijn gespecialiseerd in het zoeken op gelijkenis. Relationele databases en andere klassieke databasesystemen blijven relevant voor transacties, gestructureerde gegevens, exacte filters en tal van andere taken. In de praktijk worden beide benaderingen daarom vaak met elkaar gecombineerd.
De kwaliteit van een RAG-systeem hangt niet alleen af van de gebruikte vector-database. Ook de kwaliteit van de brongegevens, het gebruikte embedding-model, de indeling van documenten in chunks en de zoeklogica zijn van invloed op de resultaten.
Vector-database versus klassieke database
Criterium | Klassieke database | Vector Database |
|---|---|---|
Zoeken | exacte waarden, filters, ID's | Gelijkenis |
Gegevens | Tabellen, documenten, velden | Embeddings en metadata |
Typische zoekopdracht | SQL, trefwoord, filter | Nearest Neighbor Search |
Kracht | gestructureerde gegevens | semantische relaties |
Typische AI-rol | Gegevensbron | Retrieval-laag |
In de praktijk vullen beide benaderingen elkaar vaak aan. Product-, klant- of stamgegevens kunnen nog steeds in een klassieke database worden opgeslagen, terwijl er daarnaast embeddings worden verwerkt voor semantisch zoeken.
Een vector-database vervangt bestaande databases daarom meestal niet, maar vult ze aan
Wat is het verschil tussen een vectoropslag en een vectordatabase?
De termen ‘vector database ’ en ‘vector store’ worden vaak als synoniemen gebruikt.
- Een 'vector store' dient vooral om embeddings op te slaan en vergelijkbare vectoren terug te vinden.
- Een vector-database biedt daarnaast meestal extra functies zoals indexering, metagegevensfilters, schaalbaarheid of hybride zoekfuncties.
De grens is echter vaag: veel vectorstores bieden tegenwoordig databasefuncties, terwijl klassieke databases zoals PostgreSQL met pgvector ook vectorzoekfuncties ondersteunen. Bepalend is daarom niet zozeer de benaming als wel de concrete use case.
Wanneer is een aparte vectordatabase zinvol?
Niet elke toepassing met vectorzoekfuncties heeft een op zichzelf staand vector-databasesysteem nodig. Sommige klassieke databases en zoeksystemen ondersteunen inmiddels ook het opslaan en zoeken van vectoren. Een bekend voorbeeld is PostgreSQL in combinatie met de uitbreiding pgvector.
Een gespecialiseerde vector-database kan met name zinvol zijn wanneer zeer grote hoeveelheden embeddings moeten worden doorzocht, korte responstijden vereist zijn of wanneer het zoeken op gelijkenis een centrale functie van een toepassing vormt. Gespecialiseerde systemen bieden hiervoor vaak functies zoals geoptimaliseerde vector-indexen, metadatfilters, gedistribueerde verwerking of hybride zoeken.
Bij kleinere hoeveelheden gegevens of reeds bestaande databaseomgevingen kan daarentegen een geïntegreerde vectorzoekfunctie volstaan. Of een aparte vector-database nodig is, hangt daarom af van de technische vereisten en de bestaande systeemarchitectuur.
Welke oplossingen voor vectordatabases zijn er?
| Oplossing | Type | Hosting | Sterke fit | Voordeel | Minder geschikt wanneer … |
|---|---|---|---|---|---|
pgvector | PostgreSQL-extensie | Self-hosted / Managed | Bestaande PostgreSQL-stack | Weinig extra infrastructuur | Vector search een kernfunctie wordt op zeer grote schaal |
Pinecone | Dedicated / Managed | Cloud | Zo min mogelijk operationele inspanning | Managed vector search | Maximale controle over de infrastructuur vereist is |
Qdrant | Dedicated | Cloud / Self-hosted | Filtering, flexibele deployments | Sterke focus op vector search | Een bestaande database al aan alle vereisten voldoet |
Weaviate | Dedicated / AI Search | Cloud / Self-hosted | Hybrid search / AI search | Uitgebreid zoekmodel | Een minimale architectuur gewenst is |
Milvus | Dedicated / Open Source | Self-hosted / Managed | Grootschalige vectorworkloads | Schaalbaarheid | lage complexiteit van de operatie heeft prioriteit |
De benaming alleen geeft daarom slechts beperkte informatie over de functionaliteit van een systeem. Het is van doorslaggevend belang welke mogelijkheden de betreffende oplossing biedt op het gebied van vectorzoekopdrachten, indexering, filtering en schaalbaarheid.
Waarin verschillen vector-databases van elkaar?
Vector-databases kunnen aanzienlijk van elkaar verschillen wat betreft hun technische opzet en hun functionaliteit. Daarbij zijn vooral de manier van indexeren, de verwerking van grote hoeveelheden gegevens en aanvullende zoek-, filter- en integratiefuncties van belang.
Tot de belangrijkste verschillen behoren:
- Indexering: systemen maken gebruik van verschillende methoden om vectoren efficiënt te ordenen en zoekopdrachten op basis van gelijkenis te versnellen.
- Schaalbaarheid: Afhankelijk van de architectuur zijn oplossingen geschikt voor kleinere datasets of voor zeer grote hoeveelheden embeddings.
- Metadatafilters: Naast semantische gelijkenis kunnen resultaten bijvoorbeeld worden gefilterd op taal, categorie, datum, toegangsrechten of klant.
- Hybride zoekfunctie: Sommige systemen combineren vectorzoekfuncties met klassieke zoekmethoden, zoals zoeken op trefwoord. Dit is met name zinvol wanneer zowel semantische verbanden als exacte termen, eigennamen of productnummers in aanmerking moeten worden genomen.
- Bedrijfsmodel: Sommige vector-databases worden uitsluitend als managed service aangeboden, andere kunnen zelf worden beheerd of in bestaande infrastructuren worden geïntegreerd.
- Integratiemogelijkheden: Er zijn ook verschillen in de mate waarin een systeem eenvoudig kan worden gekoppeld aan bestaande databases, applicaties, AI-modellen of clouddiensten.
Welke van deze eigenschappen bijzonder belangrijk zijn, hangt af van de betreffende toepassing. Voor een eenvoudige semantische zoekopdracht kunnen andere eisen gelden dan voor grote RAG-systemen of toepassingen met een hoog zoekvolume.
Conclusie: vector-databases maken het mogelijk om op basis van embeddings naar overeenkomsten te zoeken
Een vector-database slaat embeddings op en indexeert deze, waardoor het mogelijk wordt om gegevens te doorzoeken op basis van hun wiskundige of semantische gelijkenis. Hierdoor verschilt vectorzoekopdrachten fundamenteel van zoekopdrachten die uitsluitend gebaseerd zijn op exacte waarden of identieke termen.
Typische toepassingsgebieden zijn semantische zoeksystemen, retrieval-augmented generation, aanbevelingssystemen en het zoeken naar overeenkomsten in teksten, afbeeldingen en andere ongestructureerde gegevens.
Een vector-database vervangt daarbij niet per definitie klassieke databases. In veel toepassingen vullen gestructureerde gegevensopslag, klassieke zoekmethoden en vectorzoek elkaar aan. Of hiervoor een gespecialiseerd databasesysteem of een bestaand platform met vectorzoekfunctie wordt ingezet, hangt af van de betreffende technische toepassing.
Veelgestelde vragen over vector databases
Een vectordatabase slaat numerieke weergaven van gegevens op en kan vergelijkbare inhoud vinden op basis van hun wiskundige gelijkenis. Hierdoor maakt het het mogelijk om op betekenis te zoeken in plaats van alleen op exacte trefwoorden.
Een vectordatabase kan bij RAG relevante documentfragmenten vinden die betrekking hebben op een vraag van een gebruiker en deze als context aan een Large Language Model aanbieden. Dit is vaak nuttig, maar niet absoluut noodzakelijk.
Voor veel kleine en middelgrote toepassingen kan PostgreSQL in combinatie met pgvector volstaan, vooral als PostgreSQL al in gebruik is. Bij zeer grote of gespecialiseerde vector-workloads kunnen speciale systemen voordelen bieden.
Nee. Vector-databases zijn gespecialiseerd in het zoeken op gelijkenis. Klassieke relationele databases blijven belangrijk voor gestructureerde gegevens, transacties en exacte zoekopdrachten.
Dat hangt af van het specifieke gebruiksscenario. Doorslaggevende factoren zijn onder andere de hoeveelheid gegevens, de prestaties, de filtermogelijkheden, de implementatie, de gegevensbescherming, de kosten en de bestaande infrastructuur.













