← プロジェクト一覧に戻る

Weaviate

埋め込み生成を代行し、意味と語句の両方で同時に検索し、テナントを分離するベクトルデータベース

公式BSD-3-Clause
スター
16.8k
フォーク
1.4k
オープンIssue
691
最終コミット
2026年8月28日

Weaviateとは

素の索引との違いは3点あります。オブジェクトを属性ごと保存するため絞り込みが検索の一部になり、後段のフィルタではなくなること。ベクトライザーモジュールが書き込み時に埋め込みを生成でき、ずれがちな別パイプラインを持たずに済むこと。そしてマルチテナンシーが正式な構成要素で、テナントごとに専用のシャードを持ち、停止状態やオブジェクトストレージへの退避を選べることです。ただし自分で運用するデータベースではあります。1プロセス内に埋め込む索引が欲しいだけなら、必要以上の機構になります。

Weaviateで何ができますか?

  • ベクトルだけでなくオブジェクトを保存する — コレクションは共通スキーマの下で、属性とベクトルを持つJSONオブジェクトを保持します。絞り込みに必要なメタデータが別テーブルではなくベクトルと同じ場所にあります。
  • 埋め込み生成をデータベースに任せる — ベクトライザーモジュールが書き込み時にオブジェクトをベクトル化するため、データと歩調を合わせ続ける別パイプラインが不要になります。自前のベクトルを渡す方式も引き続き使えます。
  • 絞り込んでも結果を失わない — HNSWのベクトル索引と転置索引を組み合わせています。絞り込み付きの近傍検索が「取得してから捨てる」方式に落ちず、高い再現率を保てるのはこの構成によるものです。
  • 1つのオブジェクトに複数のベクトルを持たせる — 名前付きベクトルにより、同じオブジェクトが異なるモデル由来の埋め込みを、それぞれ独自の距離尺度・索引設定・圧縮方式とともに保持できます。テキストと画像を別扱いしたい場合に有効です。
  • テナントを削除せず休止させる — 各テナントは専用のシャードと索引を持ち、稼働中・休止中・クラウドストレージへ退避済みの状態を行き来します。Weaviateは中規模のクラスタで最大100万の稼働テナントに対応すると説明しています。

Weaviateを選ぶ前に

  • 運用・バックアップ・更新の対象となるデータベースプロセスです。1つのアプリケーション内に埋め込む索引が要件なら、ライブラリやファイル型のストアのほうが軽く収まります。
  • 埋め込み生成をデータベース側に任せると、モデルがその設定の一部になります。後から別の埋め込みモデルへ移る場合、アプリ側の修正ではなくコレクション全体の再ベクトル化が必要になります。

スター推移

8月21日〜8月28日 · +14

16.7k16.8k

よくある質問

Weaviateは商用利用できますか?

WeaviateはBSD-3-Clauseライセンスで公開されています。OSI承認のオープンソースライセンスで、商用利用が認められています。

Weaviateはどの形で使えますか?

Weaviateはセルフホスト・マネージドクラウドの形で利用できます。

ドキュメント

weaviate/weaviate のREADMEより転載(BSD-3-Clause)。 原文を読む ↗

Weaviate

Go Reference Build Status Go Report Card

Weaviate is an open-source, cloud-native vector database that stores both objects and vectors, enabling semantic search at scale. It combines vector similarity search with keyword filtering, retrieval-augmented generation (RAG), and reranking in a single query interface. Common use cases include RAG systems, semantic and image search, recommendation engines, chatbots, and content classification.

Weaviate supports two approaches to store vectors: automatic vectorization at import using integrated models (OpenAI, Cohere, HuggingFace, and others) or direct import of pre-computed vector embeddings. Production deployments benefit from built-in multi-tenancy, replication, RBAC authorization, and many other features.

To get started quickly, have a look at one of these tutorials:

Installation

Weaviate offers multiple installation and deployment options:

See the installation docs for more deployment options, such as AWS and GCP.

Getting started

You can easily start Weaviate and a local vector embedding model with Docker. Create a docker-compose.yml file:

services:
  weaviate:
    image: cr.weaviate.io/semitechnologies/weaviate:1.36.0
    ports:
      - "8080:8080"
      - "50051:50051"
    environment:
      ENABLE_MODULES: text2vec-model2vec
      MODEL2VEC_INFERENCE_API: http://text2vec-model2vec:8080

  # A lightweight embedding model that will generate vectors from objects during import
  text2vec-model2vec:
    image: cr.weaviate.io/semitechnologies/model2vec-inference:minishlab-potion-base-32M

Start Weaviate and the embedding service with:

docker compose up -d

Install the Python client (or use another client library):

pip install -U weaviate-client

The following Python example shows how easy it is to populate a Weaviate database with data, create vector embeddings and perform semantic search:

import weaviate
from weaviate.classes.config import Configure, DataType, Property

# Connect to Weaviate
client = weaviate.connect_to_local()

# Create a collection
client.collections.create(
    name="Article",
    properties=[Property(name="content", data_type=DataType.TEXT)],
    vector_config=Configure.Vectors.text2vec_model2vec(),  # Use a vectorizer to generate embeddings during import
    # vector_config=Configure.Vectors.self_provided()  # If you want to import your own pre-generated embeddings
)

# Insert objects and generate embeddings
articles = client.collections.get("Article")
articles.data.insert_many(
    [
        {"content": "Vector databases enable semantic search"},
        {"content": "Machine learning models generate embeddings"},
        {"content": "Weaviate supports hybrid search capabilities"},
    ]
)

# Perform semantic search
results = articles.query.near_text(query="Search objects by meaning", limit=1)
print(results.objects[0])

client.close()

This example uses the Model2Vec vectorizer, but you can choose any other embedding model provider or bring your own pre-generated vectors.

Client libraries and APIs

Weaviate provides client libraries for several programming languages:

There are also additional community-maintained libraries.

Weaviate exposes REST API, gRPC API, and GraphQL API to communicate with the database server.

Weaviate features

These features enable you to build AI-powered applications:

  • ⚡ Fast Search Performance: Perform complex semantic searches over billions of vectors in milliseconds. Weaviate’s architecture is built in Go for speed and reliability, ensuring your AI applications are highly responsive even under heavy load. See our ANN benchmarks for more info.

  • 🔌 Flexible Vectorization: Seamlessly vectorize data at import time with integrated vectorizers from OpenAI, Cohere, HuggingFace, Google, and more. Or you can import your own vector embeddings.

  • 🔍 Advanced Hybrid & Image Search: Combine the power of semantic search with traditional keyword (BM25) search, image search and advanced filtering to get the best results with a single API call.

  • 🤖 Integrated RAG & Reranking: Go beyond simple retrieval with built-in generative search (RAG) and reranking capabilities. Power sophisticated Q&A systems, chatbots, and summarizers directly from your database without additional tooling.

  • 📈 Production-Ready & Scalable: Weaviate is built for mission-critical applications. Go from rapid prototyping to production at scale with native support for horizontal scaling, multi-tenancy, replication, and fine-grained role-based access control (RBAC).

  • 💰 Cost-Efficient Operations: Radically lower resource consumption and operational costs with built-in vector compression. Vector quantization and multi-vector encoding reduce memory usage with minimal impact on search performance.

  • ⏱️ Object TTL: Automatically expire and remove stale data with configurable time-to-live settings per collection, with full RBAC and multi-tenancy support.

For a complete list of all functionalities, visit the official Weaviate documentation.

Useful resources

AI Agent Skills

Weaviate Agent Skills is a collection of skills for AI coding agents (Claude Code, Cursor, GitHub Copilot, and others) that enable them to work with Weaviate more accurately and efficiently. Skills cover searching, querying, collection management, data import, and full application blueprints (RAG, agentic RAG, chatbots, and more).

Install with:

npx skills add weaviate/agent-skills

Demo projects & recipes

These demos are working applications that highlight some of Weaviate’s capabilities. Their source code is available on GitHub.

  • Elysia (GitHub): Elysia is a decision tree based agentic system which intelligently decides what tools to use, what results have been obtained, whether it should continue the process or whether its goal has been completed.
  • Verba (GitHub): A community-driven open-source application designed to offer an end-to-end, streamlined, and user-friendly interface for Retrieval-Augmented Generation (RAG) out of the box.
  • Healthsearch (GitHub): An open-source project aimed at showcasing the potential of leveraging user-written reviews and queries to retrieve supplement products based on specific health effects.
  • Awesome-Moviate (GitHub): A movie search and recommendation engine that allows keyword-based (BM25), semantic, and hybrid searches.

We also maintain extensive repositories of Jupyter Notebooks and TypeScript code snippets that cover how to use Weaviate features and integrations:

Blog posts

Integrations

Weaviate integrates with many external services:

CategoryDescriptionIntegrations
Cloud HyperscalersLarge-scale computing and storageAWS, Google
Compute InfrastructureRun and scale containerized applicationsModal, Replicate, Replicated
Data PlatformsData ingestion and web scrapingAirbyte, Aryn, Boomi, Box, Confluent, Astronomer, Context Data, Databricks, Firecrawl, IBM, Unstructured
LLM and Agent FrameworksBuild agents and generative AI applicationsAgno, Composio, CrewAI, DSPy, Dynamiq, Haystack, LangChain, LlamaIndex, N8n, Semantic Kernel
OperationsTools for monitoring and analyzing generative AI workflowsAIMon, Arize, Cleanlab, Comet, DeepEval, Langtrace, LangWatch, Nomic, Patronus AI, Ragas, TruLens, Weights & Biases