Skip to main content
Weaviate Docs (migrated from docs.weaviate.io) Docs

Search documentation

Type to search this documentation.

On this pageOverview

Weaviate configurations

Weaviate can be configured and deployed in many different ways. Important configuration decisions include:

This page helps you to find the right combination for your project.

Weaviate can be deployed in the following ways:

When adding data objects to Weaviate, you have two choices:

  • Specify the object vector directly.
  • Use a Weaviate vectorizer module to generate the object vector.

If you are using a vectorizer module, your choices depend on your input medium/modality, as well as whether you would prefer a local or API-based vectorizer.

Generally speaking, an API-based vectorizer is more convenient to use, but it incurs additional costs. A local vectorizer can cost less, but may require specialized hardware (such as a GPU) to run at comparable speeds.

For text, this open-source benchmark provides a good overview of the performance of different vectorizers. Remember, domain-specific and real-world performance may vary.

Here are some recommendations for different use cases.

If you are evaluating Weaviate, we recommend using one of these instance types to get started quickly:

Use an inference-API based text vectorizer with your instance, for example, text2vec-cohere, text2vec-huggingface, text2vec-openai, or text2vec-google.

The Quickstart guide uses a WCD free cluster and an API based vectorizer to run the examples.

For development, we recommend using

Of the two, Docker-Compose is more flexible as it exposes all configuration options, and can be used in a local development environment. Additionally, it can use local vectorizer modules such as text2vec-transformers or multi2vec-clip for example.

On the other hand, WCD instances are easier to spin up, and takes away the need to manage the deployment yourself.

Note that Embedded Weaviate is currently not recommended for serious development use as it is at an experimental phase.

For development, we recommend using a vectorizer module that at least approximates your needs.

As a first point, you must choose:

  • Whether to vectorize data yourself and import it into Weaviate, or
  • To use a Weaviate vectorizer module.

Then, we recommend choosing a vectorizer module that is as close as possible to your production needs. For example, if search quality is of paramount importance, we suggest using your preferred vectorizer module in development as well.

Keep in mind two other factors, which are cost, and their footprint.

  • Vectorization, such as with an API-based vectorizer, can be expensive. This is especially true if you are dealing with very large datasets.
  • Vector lengths can vary by a factor of ~5, which will impact both your storage and memory requirements. This can ultimately impact cost down the line.

For production deployments, consider one of these hosting models:

All of these options are scalable. Kubernetes and Hybrid SaaS offer the most configuration flexibility.

A WCD-based solution is the easiest way to deploy Weaviate in terms of setup and maintenance. A self-managed Kubernetes deployment combines flexibility and scalability. DigitalOcean Managed Weaviate is a fully managed option operated by DigitalOcean, a good fit for teams already on DigitalOcean or who want managed hosting outside Weaviate Cloud.

If you need additional configuration control, but you don't want to manage your Weaviate deployment, Hybrid SaaS offers a best-of-both-worlds solution.

Weaviate makes various vectorizer & reranker modules available for different media types, also called modalities.

Some model types such as Ollama or Transformers models are locally hosted, while others such as Cohere or OpenAI are API-based. This affects their availability in different Weaviate setups.

We recommend reviewing from the available model integrations and their availability in different Weaviate setups. Then, choose the one that best fits your needs.

Have a question or feedback? Here's how to reach us.

Suggest an edit

Propose a replacement for this page. The site team reviews it before applying any changes.

Export
Documentation menu