Weaviate is an open-source, cloud-native vector database that stores data objects together with their vector embeddings, enabling both semantic (vector) and keyword (BM25) search in a single system. It sits at the center of modern RAG (Retrieval-Augmented Generation) pipelines, combining retrieval with integrated generative AI modules so that search and generation happen in one query. Unlike standalone vector stores, Weaviate ships with a full schema system, inverted indexes, multi-tenancy, replication, and a pluggable module ecosystem β making the key mental model that each "collection" in Weaviate is simultaneously a vector index, an inverted index, and a structured object store.
What This Cheat Sheet Covers
This topic spans 17 focused tables and 166 indexed concepts, 122 flashcards. Below is a complete table-by-table outline of this topic, spanning foundational concepts through advanced details.
A jump-to index of every table row in this cheat sheet.
An interactive map of every table and concept in this topic.
Table 1: Collection (Class) Definition β Top-Level Parameters
A Weaviate collection (formerly called a "class") is the core schema unit that defines how objects are stored, vectorized, and indexed. Every collection must be planned carefully before import because several top-level settings β vectorizer, index type, sharding, and multi-tenancy β are immutable after creation.
| Parameter | Example | Description | |
|---|---|---|---|
"class": "Article" | β’ Collection name β’ must start with an uppercase letter β’ immutable after creation | ||
"description": "News articles" | β’ Human-readable documentation string β’ mutable | ||
"vectorizer": "text2vec-openai" | β’ Module that auto-generates vectors at import/query time β’ immutable after creation β’ set "none" for BYOV | ||
"vectorIndexType": "hnsw" | β’ Vector index algorithm: hnsw (default), flat, dynamic, or hfreshβ’ immutable after creation | ||
"vectorIndexConfig": {"ef": 64, "efConstruction": 128} | β’ Fine-tunes the chosen index (e.g., HNSW ef, efConstruction, maxConnections)β’ partially mutable | ||
"vectorConfig": {"title": {"vectorizer": {...}, "vectorIndexConfig": {...}}} | Named vectors β defines multiple independent vector spaces per object, each with its own vectorizer and index. | ||
"properties": [{"name": "title", "dataType": ["text"]}] | β’ Array of property definitions β’ new properties can be added later but existing ones cannot be deleted | ||
"invertedIndexConfig": {"bm25": {"k1": 1.2, "b": 0.75}} | β’ Controls BM25 parameters, stopwords, and timestamp/null/length indexing β’ mutable. | ||
"moduleConfig": {"generative-openai": {"model": "gpt-4o"}} | β’ Per-collection module overrides (vectorizer, generative, reranker) β’ generative/reranker settings mutable from v1.25.23+. | ||
"shardingConfig": {"desiredCount": 2, "virtualPerPhysical": 128} | β’ Number of physical shards and virtual shard mapping β’ all fields immutable after creation | ||
"replicationConfig": {"factor": 3, "asyncEnabled": true} | β’ Replica count and async replication toggle β’ factor immutableβ’ asyncEnabled mutable | ||
"multiTenancyConfig": {"enabled": true, "autoTenantCreation": false} | β’ Enables per-tenant data isolation β’ enabled immutableβ’ autoTenantCreation mutable | ||
AUTOSCHEMA_ENABLED: 'false' (env var to disable) | β’ When enabled (default), Weaviate infers a collection definition from incoming data β’ disable in production for control | ||
client.collections.create_alias("MyAlias", "Article") | β’ Alternative name pointing to an existing collection β’ useful for zero-downtime schema migrations |