Consultas GraphQL en Weaviate
Domine las consultas de sus datos de Weaviate mediante su potente API de GraphQL para realizar búsquedas semánticas y recuperar datos.
Consultas GraphQL en Weaviate es una lección gratuita de Vector Databases: Pinecone, Weaviate & pgvector en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Vector Databases: Pinecone, Weaviate & pgvector, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Vector Databases: Pinecone, Weaviate & pgvector incluye 4 lecciones en total.
Partes de esta lección aún no han sido traducidas y se muestran en inglés.
Weaviate's GraphQL Power
Welcome! In this lesson, you'll master querying your Weaviate data. Weaviate uses GraphQL, a powerful query language, for flexible and efficient data retrieval.
GraphQL allows you to request exactly the data you need, nothing more, nothing less. This is especially useful for complex searches, including vector similarity.
Basic Data Retrieval: Get
The foundation of querying in Weaviate is the Get operation. It allows you to fetch data objects from a specific class defined in your schema.
- Specify the class name (e.g.,
Article). - Select the properties you want to retrieve (e.g.,
title,content). - Weaviate will return all objects of that class with the specified properties.
Get All Objects Example
Let's see a basic Get query in action. This Python code connects to your Weaviate instance and fetches the title and content of all Article objects.
(Ensure you have a Weaviate instance running locally at http://localhost:8080 and an 'Article' class with some 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}")Filtering Data with 'where'
Often, you don't want all objects, but specific ones. The where filter allows you to add conditions to your queries, narrowing down the results.
- You can filter by property values (text, number, boolean, date).
- Use operators like
Equal,Like,GreaterThan, etc. - Combine multiple conditions with
_andor_orclauses.
Filter by Property Value
This example shows how to use the where filter to find articles written by a specific author. We'll look for articles where the author property matches '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}")Retrieving Vector Embeddings
Weaviate stores a vector embedding for each object, representing its semantic meaning. You can retrieve this vector directly as part of your GraphQL query.
To do this, you use the _additional { vector } clause. This is useful for debugging, understanding your data, or performing custom operations outside Weaviate.
Get Vector Embedding
Here's how to fetch the vector embedding along with other properties. We'll get the title and the vector for the first article found.
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}")Powerful Semantic Search
One of Weaviate's core strengths is semantic search. Instead of keyword matching, it finds data objects based on their meaning, even if the exact words aren't present.
This is achieved using the nearText operator. You provide 'concepts' (text) and Weaviate uses them to find the most semantically similar objects in your database.
Find Similar Articles
Let's perform a semantic search to find articles related to 'machine learning applications'. Notice how we use with_near_text and provide our query concepts.
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 Query Challenge
You've learned about various ways to query data in Weaviate using GraphQL.
Which of the following GraphQL query operations is specifically used to find data objects that are semantically similar to a given text concept?
Weaviate Queries Recap
Great job! You've mastered the essentials of Weaviate's powerful GraphQL API:
- The
Getoperation retrieves data objects and their properties. - The
wherefilter allows you to apply precise conditions to your searches. - You can explicitly fetch an object's vector embedding using
_additional { vector }. - The
nearTextoperator powers semantic search, finding items based on meaning.
These tools enable you to efficiently retrieve and explore your vector data in Weaviate!
Preguntas frecuentes
¿La lección «Consultas GraphQL en Weaviate» es gratis?
Sí — el texto completo de «Consultas GraphQL en Weaviate» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Vector Databases: Pinecone, Weaviate & pgvector, actualiza a CoddyKit PRO. El curso de Vector Databases: Pinecone, Weaviate & pgvector incluye 4 lecciones en total.
¿Qué aprenderé en «Consultas GraphQL en Weaviate»?
Domine las consultas de sus datos de Weaviate mediante su potente API de GraphQL para realizar búsquedas semánticas y recuperar datos. Practicas Vector Databases: Pinecone, Weaviate & pgvector con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Vector Databases: Pinecone, Weaviate & pgvector?
No se requiere experiencia previa. Vector Databases: Pinecone, Weaviate & pgvector en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.
¿Cuánto tiempo toma la lección «Consultas GraphQL en Weaviate»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Vector Databases: Pinecone, Weaviate & pgvector?
Sí. Cada lección de Vector Databases: Pinecone, Weaviate & pgvector incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Definición de esquemas en Weaviate
- Importación de objetos de datos
- Consultas GraphQL en Weaviate
- Módulos vectorizer y generación automática de embeddings