Optimierung gefilterter Suchen
Optimieren Sie pgvector-Abfragen, die Vektorähnlichkeit mit Metadatenfiltern kombinieren, mithilfe von Strategien für partielle und zusammengesetzte Indizes.
Optimierung gefilterter Suchen ist eine kostenlose Vector Databases: Pinecone, Weaviate & pgvector-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Vector Databases: Pinecone, Weaviate & pgvector-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Vector Databases: Pinecone, Weaviate & pgvector-Kurs umfasst insgesamt 4 Lektionen.
Teile dieser Lektion wurden noch nicht übersetzt und werden auf Englisch angezeigt.
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.
Häufig gestellte Fragen
Ist die Lektion „Optimierung gefilterter Suchen“ kostenlos?
Ja — der vollständige Text von „Optimierung gefilterter Suchen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Vector Databases: Pinecone, Weaviate & pgvector-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Vector Databases: Pinecone, Weaviate & pgvector-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Optimierung gefilterter Suchen“?
Optimieren Sie pgvector-Abfragen, die Vektorähnlichkeit mit Metadatenfiltern kombinieren, mithilfe von Strategien für partielle und zusammengesetzte Indizes. Du übst Vector Databases: Pinecone, Weaviate & pgvector mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Vector Databases: Pinecone, Weaviate & pgvector zu starten?
Keine Vorkenntnisse erforderlich. Vector Databases: Pinecone, Weaviate & pgvector auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.
Wie lange dauert die Lektion „Optimierung gefilterter Suchen“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Vector Databases: Pinecone, Weaviate & pgvector-Lektion Code schreiben und ausführen?
Ja. Jede Vector Databases: Pinecone, Weaviate & pgvector-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- IVFFlat-Indizierung für mehr Geschwindigkeit
- HNSW-Indizierung für mehr Recall
- Abfrageleistung optimieren
- Optimierung gefilterter Suchen