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

Search documentation

Type to search this documentation.

On this pageOverview

Collection configuration messages

Messages on this page are deprecation warnings from the Weaviate Python client. Nothing has failed: the collection was created or updated as you asked. The way the request described its vectors is on its way out, so the fix is always a rewrite of the configuration, never a change to your data. If your message is not here, the message index lists the other groups.

Ids py-dep017, py-dep023, py-dep024, py-dep025
Raised by Python client
Severity deprecation
Impact The collection was created or updated, but the vectorizer_config and vector_index_config arguments will stop working.
Fix Describe the model and the index inside one vector_config definition.

One or more of these warnings when you create or update a collection:

text
Dep024: You are using the `vectorizer_config` argument in `collection.config.create()`, which is deprecated.
            Use the `vector_config` argument instead.

Dep025: You are using the `vector_index_config` argument in `collection.config.create()`, which is deprecated.
            Use the `vector_config` argument instead defining `vector_index_config` as a sub-argument.

Dep017: You are using the `vector_index_config` argument in the `collection.config.update()` method, which is deprecated.
            Use the `vector_config` argument instead.

Dep023: You are using the `vectorizer_config` argument in the `collection.config.update()` method with a collection with named vectors, which is deprecated.
            Use the `vector_config` argument instead.

A collection used to describe its embeddings as two independent settings: the model that produces the vector, and the index that stores it. That shape cannot express a collection with several differently configured vectors, which Weaviate supports. Both settings now live inside a single vector definition, and a collection holds one or more of them, each with a name. The old arguments still work, and a collection created with them keeps the older single-vector shape.

Move the model and the index settings into one vector definition when you create the collection:

Current
from weaviate.classes.config import Configure

client.collections.create(
    "Article",
    vector_config=Configure.Vectors.text2vec_weaviate(
        vector_index_config=Configure.VectorIndex.hnsw(),
    ),
)
Deprecated
from weaviate.classes.config import Configure

client.collections.create(
    "Article",
    vectorizer_config=Configure.Vectorizer.text2vec_weaviate(),
    vector_index_config=Configure.VectorIndex.hnsw(),
)

Updates name the vector they change. A collection created with the current argument, and no explicit vector name, has a single vector called default:

Current
from weaviate.classes.config import Reconfigure

client.collections.get("Article").config.update(
    vector_config=Reconfigure.Vectors.update(
        name="default",
        vector_index_config=Reconfigure.VectorIndex.hnsw(ef=128),
    ),
)
Deprecated
from weaviate.classes.config import Reconfigure

client.collections.get("Article").config.update(
    vector_index_config=Reconfigure.VectorIndex.hnsw(ef=128),
)

Rewriting a collection definition does not re-embed anything and does not touch stored vectors.

Ids py-dep026
Raised by Python client
Severity deprecation
Impact The vector was added, but the Configure.NamedVectors builders are aliases on their way out.
Fix Use Configure.Vectors, or Configure.MultiVectors for a multi-vector embedding. The arguments are unchanged.

A warning when you add a vector to an existing collection, quoted exactly as the client prints it, stray backtick included. The vector name in it is your own:

text
Dep026: You are using the named vector syntax for vector title_vector, e.g. `Configure.NamedVectors` in `collection.config.add_vector()`, which is deprecated.
            Use `Configure.Vectors` or `Configure.MultiVectors` instead.`

When named vectors were introduced they had their own set of builders, kept apart from the single-vector ones. Every vector is now a named vector, so the two sets were merged into one, split instead by whether the vector is a single vector or a multi-vector.

Current
from weaviate.classes.config import Configure

collection = client.collections.get("Article")
collection.config.add_vector(
    vector_config=Configure.Vectors.text2vec_weaviate(
        name="title_vector",
        source_properties=["title"],
    ),
)
Deprecated
from weaviate.classes.config import Configure

collection = client.collections.get("Article")
collection.config.add_vector(
    vector_config=Configure.NamedVectors.text2vec_weaviate(
        name="title_vector",
        source_properties=["title"],
    ),
)

For a multi-vector embedding, such as ColBERT or ColPali, use the multi-vector builders instead. If your warning names the encoding argument rather than the named vector syntax, it is the other message that ships under this same id: see deprecated multi-vector index settings.

Ids py-dep026, py-dep027
Raised by Python client
Severity deprecation
Impact The collection was created, but multi-vector settings placed on the index will stop being accepted there.
Fix Move multi_vector and encoding off the index configuration and onto the vector definition.

One or both of these warnings when you create a collection with a multi-vector embedding. You get both at once if you set an encoding inside the index configuration, because that nests one deprecated argument inside the other:

text
Dep027: You are using the `multi_vector` argument in `Configure.VectorIndex.hnsw()`, which is deprecated.
            Use the `multi_vector` argument inside `Configure.MultiVectors.module()` instead.

Dep026: You are using the `encoding` argument in `Configure.VectorIndex.MultiVectors.multi_vector()`, which is deprecated.
            Use the `encoding` argument inside `Configure.MultiVectors.module()` instead.

Whether a vector is a multi-vector is a property of the vector, not of the index that stores it, and the multi-vector builder you chose already implies it. Declaring it a second time on the index left two places that could disagree, so the setting moved onto the vector definition.

Move the setting onto the vector definition. The self_provided builder below stands for whichever multi-vector builder you use:

Current
from weaviate.classes.config import Configure

client.collections.create(
    "Document",
    vector_config=Configure.MultiVectors.self_provided(
        name="page_vector",
        multi_vector_config=Configure.VectorIndex.MultiVector.multi_vector(),
        vector_index_config=Configure.VectorIndex.hnsw(),
    ),
)
Deprecated
from weaviate.classes.config import Configure

client.collections.create(
    "Document",
    vector_config=Configure.MultiVectors.self_provided(
        name="page_vector",
        vector_index_config=Configure.VectorIndex.hnsw(
            multi_vector=Configure.VectorIndex.MultiVector.multi_vector(),
        ),
    ),
)

An encoding such as MUVERA moves the same way, onto the vector definition:

Python
from weaviate.classes.config import Configure

client.collections.create(
    "Document",
    vector_config=Configure.MultiVectors.self_provided(
        name="page_vector",
        encoding=Configure.VectorIndex.MultiVector.Encoding.muvera(),
        vector_index_config=Configure.VectorIndex.hnsw(),
    ),
)

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