0Pricing
Vector Databases: Pinecone, Weaviate & pgvector · Aula

Consultas GraphQL no Weaviate

Domine a consulta de seus dados do Weaviate usando sua poderosa interface GraphQL para busca semântica e recuperação de dados.

Consultas GraphQL no Weaviate é uma aula grátis de Vector Databases: Pinecone, Weaviate & pgvector no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Vector Databases: Pinecone, Weaviate & pgvector, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Vector Databases: Pinecone, Weaviate & pgvector inclui 4 aulas no total.

Partes desta aula ainda não foram traduzidas e aparecem em 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 _and or _or clauses.

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 Get operation retrieves data objects and their properties.
  • The where filter allows you to apply precise conditions to your searches.
  • You can explicitly fetch an object's vector embedding using _additional { vector }.
  • The nearText operator powers semantic search, finding items based on meaning.

These tools enable you to efficiently retrieve and explore your vector data in Weaviate!

Perguntas Frequentes

A aula “Consultas GraphQL no Weaviate” é grátis?

Sim — o texto completo de “Consultas GraphQL no Weaviate” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Vector Databases: Pinecone, Weaviate & pgvector, atualize para CoddyKit PRO. O curso de Vector Databases: Pinecone, Weaviate & pgvector inclui 4 aulas no total.

O que vou aprender em “Consultas GraphQL no Weaviate”?

Domine a consulta de seus dados do Weaviate usando sua poderosa interface GraphQL para busca semântica e recuperação de dados. Você pratica Vector Databases: Pinecone, Weaviate & pgvector com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Vector Databases: Pinecone, Weaviate & pgvector?

Nenhuma experiência prévia é necessária. Vector Databases: Pinecone, Weaviate & pgvector no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Consultas GraphQL no Weaviate”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Vector Databases: Pinecone, Weaviate & pgvector?

Sim. Cada aula de Vector Databases: Pinecone, Weaviate & pgvector inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Definição de Esquemas no Weaviate
  2. Importando Objetos de Dados
  3. Consultas GraphQL no Weaviate
  4. Módulos vetorizadores e criação automática de embeddings
← Voltar para Vector Databases: Pinecone, Weaviate & pgvector