Vector Databases: Pinecone, Weaviate & pgvector · Leçon

Choisir les métriques de distance dans pgvector

Comprenez les opérateurs de distance cosinus, L2 et produit scalaire de pgvector, et apprenez à choisir celui qui convient le mieux à vos embeddings.

Leçon 4 sur 413 étapes

Choisir les métriques de distance dans pgvector est une leçon Vector Databases: Pinecone, Weaviate & pgvector gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Vector Databases: Pinecone, Weaviate & pgvector, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Vector Databases: Pinecone, Weaviate & pgvector comprend 4 leçons au total.

Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.

Why Distance Matters

Similarity search ranks vectors by distance. The metric you choose must match how your embedding model was trained, or results will be subtly wrong.

The Three Operators

pgvector provides three distance operators:

  • <-> Euclidean (L2) distance
  • <=> Cosine distance
  • <#> Negative inner product
SELECT '[1,2,3]'::vector <=> '[1,2,4]'::vector AS cosine_distance;

Cosine Distance

Cosine measures angle, ignoring magnitude. It is the default for most text embedding models like OpenAI and Sentence Transformers.

SELECT id, embedding <=> '[0.1,0.2,0.3]'::vector AS dist
FROM items
ORDER BY dist
LIMIT 5;

Euclidean (L2) Distance

L2 measures straight-line distance and is sensitive to magnitude. Use it when vector length carries meaning, such as raw feature vectors.

SELECT id, embedding <-> '[0.1,0.2,0.3]'::vector AS dist
FROM items
ORDER BY dist
LIMIT 5;

Inner Product

The inner product operator <#> returns the negative dot product (so smaller is more similar). It is fastest and ideal for normalized vectors.

SELECT id, (embedding <#> '[0.1,0.2,0.3]'::vector) * -1 AS similarity
FROM items
ORDER BY embedding <#> '[0.1,0.2,0.3]'::vector
LIMIT 5;

Match Metric to Model

Always check your embedding model's documentation:

  • OpenAI text-embedding-3: cosine
  • Normalized vectors: inner product (equivalent to cosine, faster)
  • Geometric/spatial features: L2

Normalization Trick

If your vectors are unit-normalized, cosine and inner product give the same ranking. Inner product is cheaper, so normalize once at insert time.

-- Normalize before insert in app code, then use <#>
UPDATE items SET embedding = l2_normalize(embedding);

Metric in Indexes

Indexes are metric-specific. You must declare the operator class so the index matches your query operator.

CREATE INDEX ON items
USING hnsw (embedding vector_cosine_ops);

Mismatched Operators

If your index uses vector_l2_ops but you query with <=>, Postgres ignores the index and does a slow sequential scan. Keep them aligned.

Verifying Index Usage

Use EXPLAIN to confirm the planner uses your vector index for the chosen metric.

EXPLAIN ANALYZE
SELECT id FROM items
ORDER BY embedding <=> '[0.1,0.2,0.3]'::vector
LIMIT 5;

Summary of Choices

Rule of thumb:

  • Text/semantic search: cosine
  • Pre-normalized vectors: inner product
  • Raw numeric features: L2

Quick Check

Pick the right metric.

Recap

You learned pgvector's three distance operators, when to use cosine, L2, and inner product, and why your index operator class must match your query operator for fast searches.

Gratuit pour commencer

Apprends Vector Databases: Pinecone, Weaviate & pgvector avec un tuteur IA — gratuit

Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.

Cours
12
Leçons
48

Questions Fréquemment Posées

La leçon « Choisir les métriques de distance dans pgvector » est-elle gratuite ?

Oui — le texte complet de « Choisir les métriques de distance dans pgvector » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Vector Databases: Pinecone, Weaviate & pgvector, passe à CoddyKit PRO. Le cours Vector Databases: Pinecone, Weaviate & pgvector comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Choisir les métriques de distance dans pgvector » ?

Comprenez les opérateurs de distance cosinus, L2 et produit scalaire de pgvector, et apprenez à choisir celui qui convient le mieux à vos embeddings. Tu pratiques Vector Databases: Pinecone, Weaviate & pgvector avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Vector Databases: Pinecone, Weaviate & pgvector ?

Aucune expérience préalable n'est requise. Vector Databases: Pinecone, Weaviate & pgvector sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.

Combien de temps prend la leçon « Choisir les métriques de distance dans pgvector » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Vector Databases: Pinecone, Weaviate & pgvector ?

Oui. Chaque leçon Vector Databases: Pinecone, Weaviate & pgvector inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Configurer l’extension pgvector
  2. Stocker des vecteurs dans PostgreSQL
  3. Effectuer des requêtes par similarité
  4. Choisir les métriques de distance dans pgvector
← Retour à Vector Databases: Pinecone, Weaviate & pgvector