0Pricing
Vector Databases: Pinecone, Weaviate & pgvector · บทเรียน

เพิ่มประสิทธิภาพการค้นหาแบบมีตัวกรอง

เพิ่มประสิทธิภาพคำสั่งค้นหา pgvector ที่รวมความคล้ายคลึงของเวกเตอร์กับตัวกรองข้อมูลกำกับ โดยใช้กลยุทธ์การสร้างดัชนีบางส่วนและดัชนีผสม

เพิ่มประสิทธิภาพการค้นหาแบบมีตัวกรอง เป็นบทเรียน Vector Databases: Pinecone, Weaviate & pgvector ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 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.

คำถามที่พบบ่อย

บทเรียน “เพิ่มประสิทธิภาพการค้นหาแบบมีตัวกรอง” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “เพิ่มประสิทธิภาพการค้นหาแบบมีตัวกรอง” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Vector Databases: Pinecone, Weaviate & pgvector ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Vector Databases: Pinecone, Weaviate & pgvector มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “เพิ่มประสิทธิภาพการค้นหาแบบมีตัวกรอง”

เพิ่มประสิทธิภาพคำสั่งค้นหา pgvector ที่รวมความคล้ายคลึงของเวกเตอร์กับตัวกรองข้อมูลกำกับ โดยใช้กลยุทธ์การสร้างดัชนีบางส่วนและดัชนีผสม คุณปฏิบัติ Vector Databases: Pinecone, Weaviate & pgvector ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 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 ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การสร้างดัชนี IVFFlat เพื่อความเร็ว
  2. การสร้างดัชนี HNSW เพื่อความครอบคลุม
  3. การปรับแต่งประสิทธิภาพคำค้น
  4. เพิ่มประสิทธิภาพการค้นหาแบบมีตัวกรอง
← กลับไปที่ Vector Databases: Pinecone, Weaviate & pgvector