Vector Databases: Pinecone, Weaviate & pgvector · Lezione

Eseguire query per similarità

Esegua query di base per la similarità vettoriale utilizzando gli operatori pgvector, così da trovare i vicini più prossimi nei suoi dati.

Lezione 3 di 413 passaggi

Eseguire query per similarità è una lezione Vector Databases: Pinecone, Weaviate & pgvector gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Vector Databases: Pinecone, Weaviate & pgvector, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Vector Databases: Pinecone, Weaviate & pgvector include 4 lezioni in totale.

Parti di questa lezione non sono ancora state tradotte e vengono mostrate in inglese.

Unlocking Similarity Queries

Welcome! In this lesson, we'll dive into one of the most powerful features of vector databases: similarity queries.

You'll learn how to ask your database to find items that are 'similar' to a given item, based on their vector embeddings.

Why Similarity Matters

Similarity queries are at the heart of many AI applications:

  • Recommendation Systems: Find products similar to what a user liked.
  • Semantic Search: Retrieve documents with similar meaning, not just keyword matches.
  • Anomaly Detection: Identify data points that are unusually 'far' from others.

They help us make sense of high-dimensional data.

Measuring Vector Distance

How do we define 'similarity' for vectors? We use distance metrics.

Imagine vectors as points in space. The 'closer' two points are, the more similar their underlying data is. Different metrics measure this distance in different ways.

Euclidean Distance (L2 Norm)

Euclidean distance, also known as L2 distance, is the most intuitive metric. It's the straight-line distance between two points in a Euclidean space.

In pgvector, you use the <-> operator to calculate Euclidean distance. A smaller value means higher similarity.

Cosine Similarity / Distance

Cosine similarity measures the cosine of the angle between two vectors. It tells you if vectors are pointing in roughly the same direction, regardless of their magnitude (length).

pgvector uses the <#> operator for cosine distance. Cosine distance is 1 - cosine_similarity. A smaller cosine distance (closer to 0) means the vectors are more aligned and similar.

Preparing Our Data for Queries

To demonstrate queries, let's set up a simple table with some 3-dimensional vectors. This ensures our code snippets are runnable.

CREATE EXTENSION IF NOT EXISTS vector;

DROP TABLE IF EXISTS items;
CREATE TABLE items (
  id serial PRIMARY KEY,
  embedding vector(3)
);

INSERT INTO items (embedding) VALUES ('[1,2,3]');
INSERT INTO items (embedding) VALUES ('[1.1,2.1,3.1]');
INSERT INTO items (embedding) VALUES ('[10,20,30]');
INSERT INTO items (embedding) VALUES ('[0.9,1.9,2.9]');
INSERT INTO items (embedding) VALUES ('[1.2,2.2,3.2]');

Euclidean Distance Query Example

Now, let's find the 3 items whose embeddings are closest to [1,2,3] using Euclidean distance.

Notice the <-> operator in action!

SELECT
  id,
  embedding,
  embedding <-> '[1,2,3]' AS euclidean_distance
FROM items
ORDER BY euclidean_distance
LIMIT 3;

Interpreting Euclidean Results

When you run the query, you'll see a euclidean_distance column. The items with the smallest distance values are the most similar to your query vector [1,2,3].

For example, [1.1,2.1,3.1] should have a very small Euclidean distance, indicating high similarity.

Cosine Distance Query Example

Next, let's perform a similarity search using cosine distance. We'll again query for items similar to [1,2,3].

Observe the <#> operator. Remember, it returns cosine distance, where lower values mean higher similarity.

SELECT
  id,
  embedding,
  embedding <#> '[1,2,3]' AS cosine_distance
FROM items
ORDER BY cosine_distance
LIMIT 3;

Interpreting Cosine Results

The cosine_distance column shows how aligned the vectors are. A value close to 0 means the vectors point in almost the same direction (very similar).

A value close to 2 means they point in opposite directions (very dissimilar). Values near 1 mean they are orthogonal.

Choosing the Right Metric

Which metric should you use?

  • Euclidean distance is great when the magnitude (length) of the vector is important.
  • Cosine similarity/distance is preferred when only the direction of the vector matters, not its length. This is common for text embeddings where vector length might vary but direction captures semantic meaning.

Quick Check: Operators

You've learned about two key pgvector operators for similarity queries. Let's test your knowledge!

Recap: Similarity Queries

Great job! You've learned how to perform similarity queries with pgvector.

  • We use distance metrics to quantify similarity.
  • Euclidean distance (<->) measures straight-line distance.
  • Cosine distance (<#>) measures the angle between vectors.
  • Choosing the right metric depends on whether vector magnitude or direction is more relevant for your data.
Gratis per iniziare

Impara Vector Databases: Pinecone, Weaviate & pgvector con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
12
Lezioni
48

Domande Frequenti

La lezione «Eseguire query per similarità» è gratuita?

Sì — il testo completo di «Eseguire query per similarità» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Vector Databases: Pinecone, Weaviate & pgvector, passa a CoddyKit PRO. Il corso Vector Databases: Pinecone, Weaviate & pgvector include 4 lezioni in totale.

Cosa imparerò in «Eseguire query per similarità»?

Esegua query di base per la similarità vettoriale utilizzando gli operatori pgvector, così da trovare i vicini più prossimi nei suoi dati. Eserciti Vector Databases: Pinecone, Weaviate & pgvector con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Vector Databases: Pinecone, Weaviate & pgvector?

Non è richiesta alcuna esperienza precedente. Vector Databases: Pinecone, Weaviate & pgvector su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «Eseguire query per similarità»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Vector Databases: Pinecone, Weaviate & pgvector?

Sì. Ogni lezione Vector Databases: Pinecone, Weaviate & pgvector include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Configurare l'estensione pgvector
  2. Memorizzare vettori in PostgreSQL
  3. Eseguire query per similarità
  4. Scegliere le metriche di distanza in pgvector
← Torna a Vector Databases: Pinecone, Weaviate & pgvector