A comprehensive collection of production-ready code snippets, scripts, and optimization guides for working with Weaviate Vector Database using the Python client.
Establish and manage connections to Weaviate instances:
Connection_Methods.ipynb- Multiple ways to connect to WeaviateConnection_Tests_Script.ipynb- Test and validate your connectionsWeaviate_Connection_Manager_Singleton_Pattern.py- Singleton manager for one long-lived sync/async client per application
Migrate data and collections between Weaviate instances (open source, DigitalOcean, Weaviate Cloud, ...). Each one is a command-line script (.py) with a matching notebook (.ipynb); see Migration_Scripts/README.md for usage:
general_migration- Copy all or selected collections (schema, objects, vectors, tenants) to another instancecollections_to_tenants_migration- Merge same-schema collections into one multi-tenant collectiontenants_to_collections_migration- Split multi-tenant collections into one collection per tenant
Prepare text data for vectorization:
Recursive_chunk.py- Recursive text chunking for optimal embedding windows
Utilities for data import and cluster checks (each connects to any Weaviate: open source, DigitalOcean, Weaviate Cloud, ...):
CreateCollectionViaBatchingFromFile.py- Create an OpenAI-vectorized collection and import a CSV file with batchingHealth_Checks.ipynb- Check collection count, replication settings, multi-tenancy candidates and compressionRead_Repair_Consistency.ipynb- Read every object with consistency ALL to repair out-of-date replicas
Located in CRUD/ subdirectory with complete examples:
create.ipynb- Create objects in collectionsread.ipynb- Read and retrieve objectsupdate.ipynb- Update existing objectsdelete.ipynb- Delete objectsgeneral_queries.ipynb- General query patterns
Also located in CRUD/, multiple search strategies with working examples:
vector_search.ipynb- Pure vector/semantic searchkeywords_search.ipynb- BM25 keyword searchhybrid_search.ipynb- Combined vector + keyword searchgenerative_search.ipynb- Search with generative infill (RAG patterns)
Production-ready implementations of Weaviate's advanced capabilities:
Agents.ipynb- Agent-based automation and reasoningAggregation.ipynb- Metrics and analytics aggregationsBackups.ipynb- Backup and disaster recovery workflowsBring_Your_Own_Vector.ipynb- Custom vector imports and managementCross_Reference.ipynb- Define and query cross-references between collectionsGraphQL.ipynb- GraphQL query patterns and examplesRESTAPIs.ipynb- Direct REST API examplesRoleBasedAccessControl.ipynb- RBAC implementation and authorizationShards.ipynb- Shard management and configurationbatching.ipynb- High-performance batch ingestion patternscluster.ipynb- Multi-node cluster operationsmulti_tenancy.ipynb- Multi-tenant architecture and operationsnamed_vectors.ipynb- Named vector fields and multi-vector storage
Engram.ipynb- Getting started with the Engram memory client (weaviate-engram)
Comprehensive guides for optimizing Weaviate deployments:
| Guide | Focus Area | Key Topics |
|---|---|---|
| Inverted Index Optimization | Text Search | Tokenization, index types, BM25 configuration |
| Vector Index Optimization | Vector Search | HNSW tuning, compression (RQ), dynamic indexing |
| Batching Optimization | Data Ingestion | Production patterns for 5M–100M object imports |
| Query Agent Optimization | Query Performance | Schema design, property management, large collections |
| Multi-Tenancy Optimization | Architecture | Tenant state management, scaling to millions of tenants |
| Sharding Optimization | Distribution & Scale | Shard-count strategy, startup behavior, rebalance controls |
| Memory Optimization & Scaling | Resource Planning | Heap sizing, 1.5x rule, scaling triggers, GOMEMLIMIT tuning |
- Notebooks (.ipynb): Interactive examples with explanations and output
- Python Scripts (.py): Production-ready utilities and tools
- Markdown Guides (.md): Detailed optimization and best practices documentation
- Check the Optimization Guides for architecture decisions
We welcome contributions! If you have improvements, new examples, or bug fixes:
- Create a feature branch
- Make your changes
- Submit a pull request with a clear description
This repository is licensed under the MIT License. See the LICENSE file for more details.