Vektordatabaser: Pinecone, Weaviate og pgvector · Lektion

Weaviate GraphQL-forespørgsler

Behersk forespørgsler efter Weaviate-data ved hjælp af den effektive GraphQL-API til semantisk søgning og datahentning.

Lektion 3 af 411 trin

Weaviate GraphQL-forespørgsler er en gratis Vektordatabaser: Pinecone, Weaviate og pgvector-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Vektordatabaser: Pinecone, Weaviate og pgvector, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Vektordatabaser: Pinecone, Weaviate og pgvector-kurset indeholder 4 lektioner i alt.

Weaviates GraphQL-styrke

Velkommen! I denne lektion lærer du at beherske forespørgsler på dine Weaviate-data. Weaviate bruger GraphQL, et effektivt forespørgselssprog, til fleksibel og effektiv datahentning.

GraphQL giver dig mulighed for at anmode om præcis de data, du har brug for – hverken mere eller mindre. Det er især nyttigt til komplekse søgninger, herunder vektorlighed.

Grundlæggende datahentning: Get

Grundlaget for forespørgsler i Weaviate er handlingen Get. Den giver dig mulighed for at hente dataobjekter fra en bestemt klasse, der er defineret i dit skema.

  • Angiv klassens navn (f.eks. Article).
  • Vælg de egenskaber, du vil hente (f.eks. title og content).
  • Weaviate returnerer alle objekter i den pågældende klasse med de angivne egenskaber.

Eksempel: Hent alle objekter

Lad os se en grundlæggende Get-forespørgsel i praksis. Denne Python-kode opretter forbindelse til din Weaviate-instans og henter title og content for alle Article-objekter.

(Sørg for, at du har en Weaviate-instans kørende lokalt på http://localhost:8080 og en 'Article'-klasse med nogle data.)

import weaviate

# Connect to your Weaviate instance
# For local: http://localhost:8080
client = weaviate.Client(url="http://localhost:8080")

# Perform a basic Get query for 'Article' objects
try:
    response = client.query.get("Article", ["title", "content"]).do()
    print("--- Retrieved Articles ---")
    for article in response["data"]["Get"]["Article"]:
        print(f"Title: {article['title']}")
except Exception as e:
    print(f"Error during query: {e}")

Filtrering af data med 'where'

Ofte vil du ikke have alle objekter, men kun bestemte objekter. Filtret where giver dig mulighed for at tilføje betingelser til dine forespørgsler, så du begrænser resultaterne.

  • Du kan filtrere efter egenskabsværdier (tekst, tal, boolesk værdi eller dato).
  • Brug operatorer som Equal, Like, GreaterThan osv.
  • Kombinér flere betingelser med klausulerne _and eller _or.

Filtrering efter egenskabsværdi

Dette eksempel viser, hvordan du bruger filtret where til at finde artikler skrevet af en bestemt forfatter. Vi leder efter artikler, hvor egenskaben author matcher 'Jane Doe'.

import weaviate

client = weaviate.Client(url="http://localhost:8080")

# Define the 'where' filter
where_filter = {
    "path": ["author"],
    "operator": "Equal",
    "valueText": "Jane Doe"
}

# Perform the Get query with the filter
try:
    response = client.query.get("Article", ["title", "author"])
                          .with_where(where_filter).do()
    print("--- Articles by Jane Doe ---")
    for article in response["data"]["Get"]["Article"]:
        print(f"Title: {article['title']}, Author: {article['author']}")
except Exception as e:
    print(f"Error during query: {e}")

Hentning af vektor-embeddings

Weaviate gemmer en vektor-embedding for hvert objekt, som repræsenterer dets semantiske betydning. Du kan hente denne vektor direkte som en del af din GraphQL-forespørgsel.

Det gør du ved at bruge klausulen _additional { vector }. Det er nyttigt til fejlfinding, til at forstå dine data eller til at udføre brugerdefinerede handlinger uden for Weaviate.

Hent en vektor-embedding

Her kan du se, hvordan du henter vektor-embeddingen sammen med andre egenskaber. Vi henter title og vector for den første artikel, der findes.

import weaviate

client = weaviate.Client(url="http://localhost:8080")

# Query for a title and its vector
try:
    response = client.query.get("Article", ["title"])
                          .with_additional("vector")
                          .with_limit(1).do()
    print("--- Article Title and Vector ---")
    if response["data"]["Get"]["Article"]:
        article = response["data"]["Get"]["Article"][0]
        print(f"Title: {article['title']}")
        print(f"Vector (first 5 elements): {article['_additional']['vector'][:5]}...")
    else:
        print("No articles found.")
except Exception as e:
    print(f"Error during query: {e}")

Effektiv semantisk søgning

En af Weaviates største styrker er semantisk søgning. I stedet for at matche nøgleord finder den dataobjekter ud fra deres betydning, selv når de præcise ord ikke forekommer.

Det opnås ved hjælp af operatoren nearText. Du angiver 'begreber' (tekst), og Weaviate bruger dem til at finde de objekter i din database, der semantisk ligner dem mest.

Find lignende artikler

Lad os udføre en semantisk søgning for at finde artikler, der har forbindelse til 'machine learning applications'. Bemærk, hvordan vi bruger with_near_text og angiver vores forespørgselsbegreber.

import weaviate

client = weaviate.Client(url="http://localhost:8080")

# Define the concepts for semantic search
concepts = ["machine learning applications"]

# Perform a nearText query
try:
    response = client.query.get("Article", ["title", "content"])
                          .with_near_text({"concepts": concepts})
                          .with_limit(3).do()
    print("--- Articles similar to 'machine learning applications' ---")
    for article in response["data"]["Get"]["Article"]:
        print(f"Title: {article['title']}")
except Exception as e:
    print(f"Error during query: {e}")

Udfordring: GraphQL-forespørgsel

Du har lært om forskellige måder at forespørge på data i Weaviate ved hjælp af GraphQL.

Hvilken af følgende GraphQL-forespørgselshandlinger bruges specifikt til at finde dataobjekter, der semantisk ligner et givet tekstbegreb?

Opsummering af Weaviate-forespørgsler

Godt gået! Du behersker nu det vigtigste i Weaviates effektive GraphQL-API:

  • Handlingen Get henter dataobjekter og deres egenskaber.
  • Filtret where giver dig mulighed for at anvende præcise betingelser på dine søgninger.
  • Du kan hente et objekts vektor-embedding eksplicit ved hjælp af _additional { vector }.
  • Operatoren nearText driver semantisk søgning og finder elementer ud fra deres betydning.

Disse værktøjer gør det muligt for dig effektivt at hente og udforske dine vektordata i Weaviate!

Gratis at komme i gang

Lær Vektordatabaser: Pinecone, Weaviate og pgvector med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
12
Lektioner
48

Ofte stillede spørgsmål

Er lektionen “Weaviate GraphQL-forespørgsler” gratis?

Ja — alle 3 lektioner i læringssporet Vektordatabaser: Pinecone, Weaviate og pgvector, inklusive “Weaviate GraphQL-forespørgsler”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Vektordatabaser: Pinecone, Weaviate og pgvector-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Weaviate GraphQL-forespørgsler”?

Behersk forespørgsler efter Weaviate-data ved hjælp af den effektive GraphQL-API til semantisk søgning og datahentning. Du øver dig i Vektordatabaser: Pinecone, Weaviate og pgvector med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Vektordatabaser: Pinecone, Weaviate og pgvector?

Der kræves ingen tidligere erfaring. Vektordatabaser: Pinecone, Weaviate og pgvector på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 4.

Hvor lang tid tager lektionen “Weaviate GraphQL-forespørgsler”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

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

Ja. Alle Vektordatabaser: Pinecone, Weaviate og pgvector-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Definition af Weaviate-schema
  2. Import af dataobjekter
  3. Weaviate GraphQL-forespørgsler
  4. Vectorizer-moduler og automatisk embedding
← Tilbage til Vektordatabaser: Pinecone, Weaviate og pgvector