0Pricing
Vector Databases: Pinecone, Weaviate & pgvector · درس

تحسين البحث المصفّى

حسّن استعلامات pgvector التي تجمع بين تشابه المتجهات ومرشحات البيانات الوصفية باستخدام استراتيجيات الفهرسة الجزئية والمركبة.

تحسين البحث المصفّى درس مجاني في Vector Databases: Pinecone, Weaviate & pgvector على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Vector Databases: Pinecone, Weaviate & pgvector، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Vector Databases: Pinecone, Weaviate & pgvector 4 دروس في المجموع.

بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.

The Filtered Search Problem

Real queries often combine a vector search with a metadata WHERE filter. Naive combinations can defeat the vector index and become slow.

SELECT id FROM docs
WHERE category = 'news'
ORDER BY embedding <=> '[...]'::vector
LIMIT 10;

Why Filters Hurt Recall

ANN indexes return approximate nearest neighbors before the filter applies. If most candidates are filtered out, you may get fewer than LIMIT results — this is over-filtering.

Increasing Search Scope

Raise hnsw.ef_search (or IVFFlat probes) so the index scans more candidates before filtering, improving recall on selective filters.

SET hnsw.ef_search = 100;

Partial Indexes

For a common, low-cardinality filter value, build a partial index covering only those rows. The index then perfectly matches the filtered subset.

CREATE INDEX ON docs
USING hnsw (embedding vector_cosine_ops)
WHERE category = 'news';

When Partial Indexes Win

Partial indexes shine when:

  • Filter values are few and known
  • Each subset is large enough to matter
  • Queries almost always include that filter

B-tree Support Indexes

For high-cardinality filters, add a regular B-tree index on the metadata column. The planner can combine it with the vector scan.

CREATE INDEX ON docs (category);
CREATE INDEX ON docs (published_at);

Iterative Index Scans

Newer pgvector supports iterative scans, which keep fetching from the index until enough rows pass the filter. Enable it to avoid under-filling results.

SET hnsw.iterative_scan = 'relaxed_order';

Pre-filtering vs Post-filtering

Pre-filter: narrow rows first, then vector search (good for very selective filters). Post-filter: vector search first, then filter (good for broad filters). Test both.

Measuring with EXPLAIN

Always confirm the plan. Look for Index Scan using ... hnsw rather than a sequential scan.

EXPLAIN ANALYZE
SELECT id FROM docs
WHERE category = 'news'
ORDER BY embedding <=> '[...]'::vector
LIMIT 10;

Combining Strategies

A robust setup often uses partial indexes for hot filters, B-tree indexes for the rest, and a tuned ef_search with iterative scans as a safety net.

Checklist

Before shipping a filtered vector query:

  • Verify index usage with EXPLAIN
  • Confirm you reliably get LIMIT results
  • Benchmark latency at p95

Quick Check

Test filtered search knowledge.

Recap

You learned why filters challenge ANN indexes and how partial indexes, B-tree support indexes, ef_search tuning, and iterative scans keep filtered vector queries both fast and accurate.

الأسئلة الشائعة

هل درس «تحسين البحث المصفّى» مجاني؟

نعم — نص درس «تحسين البحث المصفّى» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 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 منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «تحسين البحث المصفّى»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Vector Databases: Pinecone, Weaviate & pgvector هذا؟

نعم. كل درس في Vector Databases: Pinecone, Weaviate & pgvector يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. فهرسة IVFFlat لتحقيق السرعة
  2. فهرسة HNSW لتحسين الاستدعاء
  3. ضبط أداء الاستعلامات
  4. تحسين البحث المصفّى
← العودة إلى Vector Databases: Pinecone, Weaviate & pgvector