Utføre likhetsspørringer
Utfør grunnleggende spørringer etter vektorsimilaritet ved hjelp av pgvector-operatorer for å finne nærmeste naboer i dataene dine.
Utføre likhetsspørringer er en gratis leksjon i Vektordatabaser: Pinecone, Weaviate og pgvector på CoddyKit. Dette er leksjon 3 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.
Låse opp likhetsspørringer
Velkommen! I denne leksjonen skal vi se nærmere på en av de kraftigste funksjonene i vektordatabaser: likhetsspørringer.
Du lærer hvordan du ber databasen finne elementer som er «lignende» et gitt element, basert på vektorinnebyggingene deres.
Hvorfor likhet er viktig
Likhetsspørringer står sentralt i mange AI-applikasjoner:
- Anbefalingssystemer: Finn produkter som ligner på noe en bruker likte.
- Semantisk søk: Hent dokumenter med lignende betydning, ikke bare treff på nøkkelord.
- Avviksdeteksjon: Identifiser datapunkter som ligger uvanlig «langt» fra andre.
De hjelper oss med å forstå data med mange dimensjoner.
Måle vektoravstand
Hvordan definerer vi «likhet» for vektorer? Vi bruker avstandsmål.
Tenk på vektorer som punkter i rommet. Jo «nærmere» to punkter er hverandre, desto mer ligner de underliggende dataene. Ulike mål beregner denne avstanden på forskjellige måter.
Euklidsk avstand (L2-norm)
Euklidsk avstand, også kalt L2-avstand, er det mest intuitive målet. Det er avstanden i rett linje mellom to punkter i et euklidsk rom.
I pgvector bruker du operatoren <-> til å beregne euklidsk avstand. En lavere verdi betyr høyere likhet.
Cosinuslikhet/-avstand
Cosinuslikhet måler cosinus til vinkelen mellom to vektorer. Den viser om vektorene peker omtrent i samme retning, uavhengig av størrelsen (lengden) deres.
pgvector bruker operatoren <#> for cosinusavstand. Cosinusavstand er 1 - cosine_similarity. En lavere cosinusavstand (nærmere 0) betyr at vektorene er mer innrettet og ligner mer på hverandre.
Klargjøre dataene for spørringer
For å demonstrere spørringer skal vi sette opp en enkel tabell med noen tredimensjonale vektorer. Da kan kodeeksemplene våre kjøres.
CREATE EXTENSION IF NOT EXISTS vector;
DROP TABLE IF EXISTS items;
CREATE TABLE items (
id serial PRIMARY KEY,
embedding vector(3)
);
INSERT INTO items (embedding) VALUES ('[1,2,3]');
INSERT INTO items (embedding) VALUES ('[1.1,2.1,3.1]');
INSERT INTO items (embedding) VALUES ('[10,20,30]');
INSERT INTO items (embedding) VALUES ('[0.9,1.9,2.9]');
INSERT INTO items (embedding) VALUES ('[1.2,2.2,3.2]');Eksempel på spørring med euklidsk avstand
La oss nå finne de tre elementene med innebygginger som ligger nærmest [1,2,3], ved hjelp av euklidsk avstand.
Legg merke til operatoren <-> i bruk!
SELECT
id,
embedding,
embedding <-> '[1,2,3]' AS euclidean_distance
FROM items
ORDER BY euclidean_distance
LIMIT 3;Tolke resultater for euklidsk avstand
Når du kjører spørringen, ser du en kolonne kalt euclidean_distance. Elementene med de laveste avstandsverdiene ligner mest på spørringsvektoren [1,2,3].
For eksempel skal [1.1,2.1,3.1] ha en svært liten euklidsk avstand, noe som indikerer høy likhet.
Eksempel på spørring med cosinusavstand
Deretter skal vi utføre et likhetssøk ved hjelp av cosinusavstand. Vi spør igjen etter elementer som ligner på [1,2,3].
Legg merke til operatoren <#>. Husk at den returnerer cosinusavstand, der lavere verdier betyr høyere likhet.
SELECT
id,
embedding,
embedding <#> '[1,2,3]' AS cosine_distance
FROM items
ORDER BY cosine_distance
LIMIT 3;Tolke cosinusresultater
Kolonnen cosine_distance viser hvor godt vektorene er innrettet. En verdi nær 0 betyr at vektorene peker nesten i samme retning (svært like).
En verdi nær 2 betyr at de peker i motsatte retninger (svært ulike). Verdier nær 1 betyr at de står vinkelrett på hverandre.
Velge riktig mål
Hvilket mål bør du bruke?
- Euklidsk avstand er godt egnet når vektorens størrelse (lengde) er viktig.
- Cosinuslikhet/-avstand foretrekkes når bare vektorens retning er viktig, ikke lengden. Dette er vanlig for tekstinnebygginger, der vektorlengden kan variere, mens retningen uttrykker den semantiske betydningen.
Rask kontroll: Operatorer
Du har lært om to viktige pgvector-operatorer for likhetsspørringer. La oss teste kunnskapene dine!
Oppsummering: Likhetsspørringer
Godt jobbet! Du har lært hvordan du utfører likhetsspørringer med pgvector.
- Vi bruker avstandsmål til å kvantifisere likhet.
- Euklidsk avstand (
<->) måler avstanden i rett linje. - Cosinusavstand (
<#>) måler vinkelen mellom vektorer. - Valget av riktig mål avhenger av om vektorens størrelse eller retning er mest relevant for dataene dine.
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 «Utføre likhetsspørringer» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Vektordatabaser: Pinecone, Weaviate og pgvector, inkludert «Utføre likhetsspørringer», 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 «Utføre likhetsspørringer»?
Utfør grunnleggende spørringer etter vektorsimilaritet ved hjelp av pgvector-operatorer for å finne nærmeste naboer i dataene dine. 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 3 av 4.
Hvor lang tid tar leksjonen «Utføre likhetsspørringer»?
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
- Sette opp pgvector-utvidelsen
- Lagre vektorer i PostgreSQL
- Utføre likhetsspørringer
- Velge avstandsmål i pgvector