Database guides

Weaviate

Updated 2026-08-01 · 3 min read

Query by class name or with GraphQL. Objects come back with their properties as columns and their embeddings on the Vectors view.

Weaviate exposes both a REST API and GraphQL, and AddisDB uses both: type a class name for a quick listing, or paste a GraphQL query starting with a brace to run anything more precise.

Who it is for

Weaviate builds vectorization into the database. Modules can generate embeddings on ingest, so you can store text and have the vectors created for you, and hybrid search blends keyword and vector relevance in a single query.

Hybrid search is the differentiator worth naming: BM25 keyword scoring and vector similarity are combined with a tunable alpha, so an exact product code and a fuzzy description can be served by one query instead of two systems and a merge step.

It suits teams who want a semantic layer without running a separate embedding pipeline, and applications where hybrid keyword-plus-meaning search beats either approach alone.

Set up the server

  1. Weaviate Cloud: create a cluster and copy the endpoint URL and API key.
  2. Local: docker run -p 8080:8080 -e AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED=true semitechnologies/weaviate.
  3. Define a class (a collection) with the properties and vectorizer you want.
  4. If you use a vectorizer module, set the provider API key on the server — that key lives with Weaviate, not with AddisDB.
  5. Decide the vectorizer per class at creation: switching later means re-importing the objects.

Connect from AddisDB

  1. New Connection → Weaviate under Vector / AI. Port prefills to 8080.
  2. Enter the host, and paste your Weaviate API key into the API key / token field if the cluster requires one.
  3. ClassName is optional — set a default class or leave it blank.
  4. For Weaviate Cloud, set the port to 443 and SSL mode to require.
  5. Test, then Save.

How to query it

// A class name — lists objects with their vectors
Article

// GraphQL for anything more specific
{ Get { Article(limit: 10, nearText: { concepts: ["climate policy"] }) {
      title
      url
      _additional { distance }
} } }

Class names are capitalized by convention and Weaviate enforces it, so article and Article are not the same thing — a query against the lower-case spelling comes back empty rather than erroring.

Two more forms are worth knowing. Aggregate answers counting questions without returning objects, and hybrid combines keyword and vector scoring in one call.

{ Get { Article(hybrid: { query: "carbon tax", alpha: 0.5 }, limit: 10) {
      title
      _additional { score }
} } }

{ Aggregate { Article { meta { count } } } }

nearText only works when the class has a vectorizer module configured. Without one, pass a vector yourself with nearVector — otherwise the server has nothing to embed the phrase with.

What AddisDB gives you

  • Classes listed in the sidebar with their properties.
  • Objects flattened into the grid — properties become columns alongside id and vector.
  • The Vectors view for the embeddings, and the JSON tab for the raw GraphQL response.
  • Read-only enforcement — PUT, PATCH and DELETE are blocked, and POST is only allowed to /graphql, where Get and Aggregate are reads.
  • Object counts per class feeding the size alerts.
  • The Chart view, ⌘K search, and AI chat grounded in your classes.