تنفيذ استعلامات التشابه
نفّذوا استعلامات أساسية لتشابه المتجهات باستخدام عوامل pgvector للعثور على أقرب الجيران في بياناتكم.
تنفيذ استعلامات التشابه درس مجاني في Vector Databases: Pinecone, Weaviate & pgvector على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Vector Databases: Pinecone, Weaviate & pgvector، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Vector Databases: Pinecone, Weaviate & pgvector 4 دروس في المجموع.
بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.
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.
الأسئلة الشائعة
هل درس «تنفيذ استعلامات التشابه» مجاني؟
نعم — نص درس «تنفيذ استعلامات التشابه» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Vector Databases: Pinecone, Weaviate & pgvector، انتقل إلى CoddyKit PRO. تتضمن دورة Vector Databases: Pinecone, Weaviate & pgvector 4 دروس في المجموع.
ماذا ستتعلم في «تنفيذ استعلامات التشابه»؟
نفّذوا استعلامات أساسية لتشابه المتجهات باستخدام عوامل pgvector للعثور على أقرب الجيران في بياناتكم. تتمرن على Vector Databases: Pinecone, Weaviate & pgvector مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Vector Databases: Pinecone, Weaviate & pgvector؟
لا تُشترط خبرة سابقة. Vector Databases: Pinecone, Weaviate & pgvector على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «تنفيذ استعلامات التشابه»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Vector Databases: Pinecone, Weaviate & pgvector هذا؟
نعم. كل درس في Vector Databases: Pinecone, Weaviate & pgvector يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- إعداد إضافة pgvector
- تخزين المتجهات في PostgreSQL
- تنفيذ استعلامات التشابه
- اختيار مقاييس المسافة في pgvector