Vektordatabaser: Pinecone, Weaviate og pgvector · leksjon

Optimalisering av filtrerte søk

Optimaliser pgvector-spørringer som kombinerer vektorlikhet med metadatafiltre, ved hjelp av strategier for delvise og sammensatte indekser.

Leksjon 4 av 413 trinn

Optimalisering av filtrerte søk er en gratis leksjon i Vektordatabaser: Pinecone, Weaviate og pgvector på CoddyKit. Dette er leksjon 4 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Vektordatabaser: Pinecone, Weaviate og pgvector, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Vektordatabaser: Pinecone, Weaviate og pgvector inneholder totalt 4 leksjoner.

Utfordringen med filtrerte søk

Reelle spørringer kombinerer ofte et vektorsøk med et metadatafilter i WHERE. Naive kombinasjoner kan gjøre vektorindeksen ineffektiv og føre til treghet.

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

Hvorfor filtre svekker treffraten

ANN-indekser returnerer omtrentlige nærmeste naboer før filteret brukes. Hvis de fleste kandidatene filtreres bort, kan De få færre enn LIMIT-resultater – dette kalles overfiltrering.

Øke søkeområdet

Øk hnsw.ef_search (eller antallet IVFFlat-prober) slik at indeksen skanner flere kandidater før filtreringen. Dette forbedrer treffraten ved selektive filtre.

SET hnsw.ef_search = 100;

Partielle indekser

For en vanlig filterverdi med få mulige verdier kan De bygge en partiell indeks som bare dekker disse radene. Da samsvarer indeksen perfekt med det filtrerte delsettet.

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

Når partielle indekser er best

Partielle indekser fungerer best når:

  • Filterverdiene er få og kjente
  • Hvert delsett er stort nok til å ha betydning
  • Spørringene nesten alltid inneholder dette filteret

Støtteindekser med B-tree

For filtre med mange mulige verdier kan De legge til en vanlig B-tree-indeks på metadatakolonnen. Planleggeren kan kombinere den med vektorskanningen.

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

Iterative indeksskanninger

Nyere versjoner av pgvector støtter iterative skanninger, som fortsetter å hente fra indeksen til nok rader passerer filteret. Aktiver dette for å unngå for få resultater.

SET hnsw.iterative_scan = 'relaxed_order';

Forhåndsfiltrering kontra etterfiltrering

Forhåndsfilter: begrens radene først, og utfør deretter vektorsøk (bra for svært selektive filtre). Etterfilter: utfør vektorsøk først, og filtrer deretter (bra for brede filtre). Test begge.

Måling med EXPLAIN

Bekreft alltid planen. Se etter Index Scan using ... hnsw i stedet for en sekvensiell skanning.

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

Kombinere strategier

Et robust oppsett bruker ofte partielle indekser for ofte brukte filtre, B-tree-indekser for resten og en justert ef_search med iterative skanninger som sikkerhetsnett.

Sjekkliste

Før De setter en filtrert vektorspørring i produksjon:

  • Bekreft indeksbruk med EXPLAIN
  • Kontroller at De pålitelig får LIMIT-resultater
  • Mål ventetid ved p95

Kort kontroll

Test kunnskapene Deres om filtrerte søk.

Oppsummering

De har lært hvorfor filtre utfordrer ANN-indekser, og hvordan partielle indekser, B-tree-støtteindekser, justering av ef_search og iterative skanninger holder filtrerte vektorspørringer både raske og presise.

Gratis å komme i gang

Lær deg Vektordatabaser: Pinecone, Weaviate og pgvector med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
12
Leksjoner
48

Ofte stilte spørsmål

Er leksjonen «Optimalisering av filtrerte søk» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Vektordatabaser: Pinecone, Weaviate og pgvector, inkludert «Optimalisering av filtrerte søk», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Vektordatabaser: Pinecone, Weaviate og pgvector inneholder totalt 4 leksjoner.

Hva lærer jeg i «Optimalisering av filtrerte søk»?

Optimaliser pgvector-spørringer som kombinerer vektorlikhet med metadatafiltre, ved hjelp av strategier for delvise og sammensatte indekser. Du øver på Vektordatabaser: Pinecone, Weaviate og pgvector med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Vektordatabaser: Pinecone, Weaviate og pgvector?

Ingen tidligere erfaring er nødvendig. Vektordatabaser: Pinecone, Weaviate og pgvector på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.

Hvor lang tid tar leksjonen «Optimalisering av filtrerte søk»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Vektordatabaser: Pinecone, Weaviate og pgvector-leksjonen?

Ja. Alle Vektordatabaser: Pinecone, Weaviate og pgvector-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. IVFFlat-indeksering for hastighet
  2. HNSW-indeksering for tilbakekalling
  3. Finjustere spørringsytelsen
  4. Optimalisering av filtrerte søk
← Tilbake til Vektordatabaser: Pinecone, Weaviate og pgvector