Weaviate GraphQL-query's
Beheers het bevragen van uw Weaviate-data met de krachtige GraphQL-API voor semantisch zoeken en dataretrieval.
Weaviate GraphQL-query's is een gratis Vectordatabases: Pinecone, Weaviate en pgvector-les op CoddyKit. Dit is les 3 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Vectordatabases: Pinecone, Weaviate en pgvector. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Vectordatabases: Pinecone, Weaviate en pgvector bevat in totaal 4 lessen.
De kracht van Weaviate's GraphQL
Welkom! In deze les leer je hoe je query's uitvoert op je Weaviate-gegevens. Weaviate gebruikt GraphQL, een krachtige querytaal, om flexibel en efficiënt gegevens op te halen.
Met GraphQL kun je precies de gegevens opvragen die je nodig hebt, niet meer en niet minder. Dit is vooral handig voor complexe zoekopdrachten, waaronder zoeken naar overeenkomende vectoren.
Gegevens opvragen: Get
De basis van query's in Weaviate is de bewerking Get. Hiermee kun je gegevensobjecten ophalen uit een specifieke klasse die in je schema is gedefinieerd.
- Geef de klassenaam op (bijvoorbeeld
Article). - Selecteer de eigenschappen die je wilt ophalen (bijvoorbeeld
title,content). - Weaviate retourneert alle objecten van die klasse met de opgegeven eigenschappen.
Voorbeeld: alle objecten ophalen
Laten we een eenvoudige Get-query in actie bekijken. Deze Python-code maakt verbinding met je Weaviate-instantie en haalt de title en content op van alle Article-objecten.
(Zorg ervoor dat er lokaal een Weaviate-instantie draait op http://localhost:8080 en dat er een klasse 'Article' met gegevens aanwezig is.)
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}")Gegevens filteren met 'where'
Vaak wil je niet alle objecten, maar slechts specifieke objecten. Met het filter where kun je voorwaarden aan je query's toevoegen, zodat je de resultaten beperkt.
- Je kunt filteren op eigenschapswaarden (tekst, getal, boolean, datum).
- Gebruik operatoren zoals
Equal,Like,GreaterThanenzovoort. - Combineer meerdere voorwaarden met componenten
_andof_or.
Filteren op eigenschapswaarde
In dit voorbeeld zie je hoe je het filter where gebruikt om artikelen van een specifieke auteur te vinden. We zoeken naar artikelen waarvan de eigenschap author overeenkomt met '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}")Vector-embeddings ophalen
Weaviate slaat voor elk object een vector-embedding op die de semantische betekenis ervan weergeeft. Je kunt deze vector rechtstreeks ophalen als onderdeel van je GraphQL-query.
Daarvoor gebruik je de component _additional { vector }. Dit is handig voor foutopsporing, om je gegevens te begrijpen of om aangepaste bewerkingen buiten Weaviate uit te voeren.
Een vector-embedding ophalen
Zo haal je de vector-embedding samen met andere eigenschappen op. We halen de title en de vector op van het eerste gevonden artikel.
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}")Krachtige semantische zoekopdrachten
Een van de belangrijkste sterke punten van Weaviate is semantisch zoeken. In plaats van overeenkomende trefwoorden te zoeken, vindt het gegevensobjecten op basis van hun betekenis, zelfs als de exacte woorden niet voorkomen.
Dit gebeurt met de operator nearText. Je geeft 'concepten' (tekst) op en Weaviate gebruikt deze om de objecten te vinden die semantisch het meest overeenkomen in je database.
Vergelijkbare artikelen vinden
Laten we semantisch zoeken naar artikelen die verband houden met 'machine learning applications'. Let erop dat we with_near_text gebruiken en onze queryconcepten opgeven.
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}")GraphQL-queryuitdaging
Je hebt verschillende manieren geleerd om met GraphQL gegevens op te vragen in Weaviate.
Welke van de volgende GraphQL-querybewerkingen wordt specifiek gebruikt om gegevensobjecten te vinden die semantisch overeenkomen met een bepaald tekstconcept?
Samenvatting van Weaviate-query's
Goed gedaan! Je beheerst nu de belangrijkste onderdelen van de krachtige GraphQL-API van Weaviate:
- Met de bewerking
Gethaal je gegevensobjecten en hun eigenschappen op. - Met het filter
wherepas je nauwkeurige voorwaarden toe op je zoekopdrachten. - Je kunt de vector-embedding van een object expliciet ophalen met
_additional { vector }. - De operator
nearTextmaakt semantisch zoeken mogelijk en vindt items op basis van hun betekenis.
Met deze hulpmiddelen kun je je vect gegevens in Weaviate efficiënt ophalen en verkennen!
Leer Vectordatabases: Pinecone, Weaviate en pgvector met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 12
- Lessen
- 48
Veelgestelde vragen
Is de les “Weaviate GraphQL-query's” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad Vectordatabases: Pinecone, Weaviate en pgvector, waaronder “Weaviate GraphQL-query's”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Vectordatabases: Pinecone, Weaviate en pgvector bevat in totaal 4 lessen.
Wat leer ik in “Weaviate GraphQL-query's”?
Beheers het bevragen van uw Weaviate-data met de krachtige GraphQL-API voor semantisch zoeken en dataretrieval. Je oefent met Vectordatabases: Pinecone, Weaviate en pgvector door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Vectordatabases: Pinecone, Weaviate en pgvector te beginnen?
Ervaring vooraf is niet nodig. Vectordatabases: Pinecone, Weaviate en pgvector op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.
Hoe lang duurt de les “Weaviate GraphQL-query's”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Vectordatabases: Pinecone, Weaviate en pgvector?
Ja. Elke les over Vectordatabases: Pinecone, Weaviate en pgvector bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Een Weaviate-schema definiëren
- Dataobjecten importeren
- Weaviate GraphQL-query's
- Vectorizermodules en auto-embedding