0Pricing
Vector Databases: Pinecone, Weaviate & pgvector · Lekcja

Optymalizacja wyszukiwania z filtrowaniem

Optymalizuj zapytania pgvector łączące podobieństwo wektorowe z filtrami metadanych za pomocą strategii indeksowania częściowego i złożonego.

Optymalizacja wyszukiwania z filtrowaniem to bezpłatna lekcja Vector Databases: Pinecone, Weaviate & pgvector na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Vector Databases: Pinecone, Weaviate & pgvector, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Vector Databases: Pinecone, Weaviate & pgvector zawiera 4 lekcji w sumie.

Części tej lekcji nie zostały jeszcze przetłumaczone i są wyświetlane po angielsku.

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.

Często zadawane pytania

Czy lekcja „Optymalizacja wyszukiwania z filtrowaniem” jest bezpłatna?

Tak — pełny tekst „Optymalizacja wyszukiwania z filtrowaniem” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Vector Databases: Pinecone, Weaviate & pgvector, przejdź na CoddyKit PRO. Kurs Vector Databases: Pinecone, Weaviate & pgvector zawiera 4 lekcji w sumie.

Co nauczysz się w „Optymalizacja wyszukiwania z filtrowaniem”?

Optymalizuj zapytania pgvector łączące podobieństwo wektorowe z filtrami metadanych za pomocą strategii indeksowania częściowego i złożonego. Ćwiczysz Vector Databases: Pinecone, Weaviate & pgvector z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Vector Databases: Pinecone, Weaviate & pgvector?

Nie wymagamy żadnego doświadczenia. Vector Databases: Pinecone, Weaviate & pgvector w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.

Ile czasu zajmuje lekcja „Optymalizacja wyszukiwania z filtrowaniem”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Vector Databases: Pinecone, Weaviate & pgvector?

Tak. Każda lekcja Vector Databases: Pinecone, Weaviate & pgvector zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Indeksowanie IVFFlat na potrzeby szybkości
  2. Indeksowanie HNSW na potrzeby pełności
  3. Dostrajanie wydajności zapytań
  4. Optymalizacja wyszukiwania z filtrowaniem
← Powrót do Vector Databases: Pinecone, Weaviate & pgvector