Recherche vectorielle (IA/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 propose un type de données VECTOR natif et la fonctionnalité AI Vector Search. La fonction VECTOR_DISTANCE calcule la similarité avec les métriques COSINE/EUCLIDEAN/DOT ; les index vectoriels HNSW et IVF sont pris en charge pour la recherche approximative. Les embeddings sont générés dans la base ou par des modèles externes.
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;L'extension pgvector ajoute à PostgreSQL un type vector et des opérateurs de similarité : <-> (L2/euclidienne), <=> (cosinus), <#> (produit scalaire). Les index HNSW ou IVFFlat accélèrent la recherche approximative des plus proches voisins (ANN). Largement utilisé dans les applications RAG et de recherche sémantique.
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 a ajouté le type de données VECTOR natif et les fonctions STRING_TO_VECTOR/VECTOR_TO_STRING et VECTOR_DIM (aussi en Community). La fonction DISTANCE() et la recherche vectorielle approximative à grande échelle ne sont disponibles que dans MySQL HeatWave sur Oracle Cloud ; en Community/Enterprise, calculez les distances dans l'application ou dans un vector store externe. Les versions on-premise plus anciennes nécessitent un vector store externe.
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 (et Azure SQL) proposent un type de données vector natif et la fonction VECTOR_DISTANCE (cosine/euclidean/dot) ; les index vectoriels basés sur DiskANN pour la recherche approximative des plus proches voisins sont en cours de développement. Les embeddings sont générés par des modèles externes comme Azure OpenAI puis stockés.
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 interroge les embeddings avec l'étape d'agrégation $vectorSearch ; en interne, il effectue une recherche approximative des plus proches voisins basée sur HNSW. L'index vectoriel est défini comme un index Atlas Search. Cette fonctionnalité est propre au service géré Atlas (non disponible dans l'édition Community on-premise).
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 fournit la recherche vectorielle via le module RediSearch (Redis Stack) ; le type de champ VECTOR prend en charge les index FLAT (exacts) ou HNSW (approximatifs) et les métriques COSINE/L2/IP. Les plus proches voisins sont récupérés avec la syntaxe KNN dans FT.SEARCH. Utilisé pour la recherche sémantique à faible latence et le 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 prend en charge les requêtes approximatives des plus proches voisins (HNSW) avec le type de champ dense_vector et la recherche knn intégrée ; la similarité peut être cosine/dot_product/l2_norm. La pertinence peut être améliorée en combinant la recherche vectorielle avec une requête texte classique (recherche hybride / RRF).