DBAtlas · Atlas für Datenbankbetrieb

Vektorsuche (KI/Embeddings)

Oracle

-- Oracle 23ai native VECTOR type:
CREATE TABLE docs (id NUMBER, content CLOB, embedding VECTOR);
-- Similarity search (cosine distance):
SELECT id FROM docs
ORDER BY VECTOR_DISTANCE(embedding, :query_vector, COSINE)
FETCH FIRST 5 ROWS ONLY;

Oracle Database 23ai bietet einen nativen Datentyp VECTOR und die Funktion AI Vector Search. Die Funktion VECTOR_DISTANCE berechnet die Ähnlichkeit mit den Metriken COSINE/EUCLIDEAN/DOT; für approximative Suche werden HNSW- und IVF-Vektorindizes unterstützt. Embeddings werden in der Datenbank oder mit externen Modellen erzeugt.

PostgreSQL

-- pgvector extension:
CREATE EXTENSION IF NOT EXISTS vector;
CREATE TABLE docs (id int, embedding vector(1536));
CREATE INDEX ON docs USING hnsw (embedding vector_cosine_ops);
-- 5 nearest neighbors (<-> Euclidean, <=> cosine):
SELECT id FROM docs ORDER BY embedding <=> :query_vec LIMIT 5;

Die Extension pgvector ergänzt PostgreSQL um einen vector-Typ und Ähnlichkeitsoperatoren: <-> (L2/euklidisch), <=> (Kosinus), <#> (inneres Produkt). HNSW- oder IVFFlat-Indizes beschleunigen die approximative Nearest-Neighbor-Suche (ANN). Weit verbreitet in RAG- und semantischen Suchanwendungen.

MySQL

-- MySQL 9.0+ native VECTOR type:
CREATE TABLE docs (id INT, embedding VECTOR(1536));
-- Cosine distance (DISTANCE is HeatWave-only):
SELECT id, DISTANCE(embedding, :query_vec, 'COSINE') AS d
FROM docs ORDER BY d LIMIT 5;

MySQL 9.0 hat den nativen Datentyp VECTOR sowie die Funktionen STRING_TO_VECTOR/VECTOR_TO_STRING und VECTOR_DIM eingeführt (auch in Community). Die Funktion DISTANCE() und approximative Vektorsuche im großen Maßstab gibt es nur in MySQL HeatWave in Oracle Cloud; in Community/Enterprise berechnest du Distanzen in der Anwendung oder in einem externen Vektorspeicher. Ältere On-Premises-Versionen erfordern einen externen Vektorspeicher.

SQL Server

-- SQL Server 2025 native vector type:
CREATE TABLE docs (id INT, embedding VECTOR(1536));
-- Nearest neighbors by cosine distance:
SELECT TOP 5 id,
  VECTOR_DISTANCE('cosine', embedding, @query_vec) AS distance
FROM dbo.docs ORDER BY distance;

SQL Server 2025 (und Azure SQL) bieten einen nativen vector-Datentyp und die Funktion VECTOR_DISTANCE (cosine/euclidean/dot); DiskANN-basierte Vektorindizes für approximative Nearest-Neighbor-Suche sind in Entwicklung. Embeddings werden mit externen Modellen wie Azure OpenAI erzeugt und gespeichert.

MongoDB

// Atlas Vector Search ($vectorSearch aggregation stage):
db.docs.aggregate([
  { $vectorSearch: {
      index: "vector_idx",
      path: "embedding",
      queryVector: [0.12, 0.87, /* ... */],
      numCandidates: 100,
      limit: 5
  } }
])

MongoDB Atlas Vector Search fragt Embeddings mit der Aggregation-Stage $vectorSearch ab; intern läuft eine HNSW-basierte approximative Nearest-Neighbor-Suche. Der Vektorindex wird als Atlas-Search-Index definiert. Die Funktion ist spezifisch für den verwalteten Dienst Atlas (in der On-Premises-Community-Edition nicht verfügbar).

Redis

# Requires the RediSearch (Redis Stack) VECTOR field type.
# Define an HNSW vector index:
FT.CREATE docs_idx ON HASH PREFIX 1 docs: SCHEMA
  embedding VECTOR HNSW 6 TYPE FLOAT32 DIM 1536 DISTANCE_METRIC COSINE
# KNN search (with a query vector):
FT.SEARCH docs_idx "*=>[KNN 5 @embedding $vec]" PARAMS 2 vec "..."

Redis bietet Vektorsuche über das Modul RediSearch (Redis Stack); der Feldtyp VECTOR unterstützt FLAT- (exakt) oder HNSW-Indizes (approximativ) und die Metriken COSINE/L2/IP. Nächste Nachbarn werden mit der KNN-Syntax in FT.SEARCH abgerufen. Genutzt für semantische Suche mit geringer Latenz und RAG.

Elasticsearch

# dense_vector field and kNN search:
PUT docs
{ "mappings": { "properties": { "embedding":
  { "type": "dense_vector", "dims": 1536, "similarity": "cosine" } } } }
GET docs/_search
{ "knn": { "field": "embedding", "query_vector": [0.12, 0.87],
  "k": 5, "num_candidates": 100 } }

Elasticsearch unterstützt approximative Nearest-Neighbor-Abfragen (HNSW) mit dem Feldtyp dense_vector und eingebauter knn-Suche; die Ähnlichkeit kann cosine/dot_product/l2_norm sein. Die Relevanz lässt sich verbessern, indem Vektorsuche mit einer klassischen Textabfrage kombiniert wird (Hybrid Search / RRF).

In DBAtlas öffnen →