# Have multiple vectors for a single object in the same index?

**URL:** <https://forum.weaviate.io/t/have-multiple-vectors-for-a-single-object-in-the-same-index/20817>\
**Category:** Support\
**Created:** [April 28, 2025, 5:33am UTC](https://forum.weaviate.io/t/have-multiple-vectors-for-a-single-object-in-the-same-index/20817 "2025-04-28T05:33:59Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Tejas\_Sharma](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.weaviate.io/tejas_sharma/32/2086_2.png) [@Tejas\_Sharma](https://forum.weaviate.io/u/Tejas_Sharma)\
**Post date:** [April 28, 2025, 5:33am UTC](https://forum.weaviate.io/t/have-multiple-vectors-for-a-single-object-in-the-same-index/20817/1 "2025-04-28T05:33:59Z")

</div>

### Description

I have records with a field ‘content’, which is a large text body. I want to divide the body into chunks, and vectorize each chunk. However, each chunk should link to the same record.

Basically, I want multiple vectors for the same record on one search index.

I saw support for [multiple vector embeddings](https://weaviate.io/developers/weaviate/config-refs/schema/multi-vector) but it seems to use a pre-configured Colbert indexer.

How can I do this if I’m manually providing in embeddings myself? I saw multiple named vectors but I want it all on the same index. Plus, I already created the collection, so I didn’t want to do a whole migration / transfer.

One way I can think of is to just create multiple records that store a reference id to the original record but this seems clunky.

### Server Setup Information

- Weaviate Server Version:
- Deployment Method: 
- Multi Node? Number of Running Nodes:
- Client Language and Version: Python, latest
- Multitenancy?: Yes

### Any additional Information

---

<div class="post-metadata">

**Author:** ![Shahin](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.weaviate.io/shahin/32/7944_2.png) [@Shahin](https://forum.weaviate.io/u/Shahin)\
**Post date:** [April 28, 2025, 7:46am UTC](https://forum.weaviate.io/t/have-multiple-vectors-for-a-single-object-in-the-same-index/20817/2 "2025-04-28T07:46:39Z")

</div>

Morning @Tejas_Sharma

Weaviate supports multiple vector embeddings per object through “named vectors” which you already put your hand on. With named vectors, you can store multiple vector embeddings for a single object and search using any of these vector spaces.

> **[Manage collections | Weaviate](https://weaviate.io/developers/weaviate/manage-data/collections#define-named-vectors)**
>
> Every object in Weaviate belongs to exactly one collection. Use the examples on this page to manage your collections.

However, there are two important limitations to note:

1. Named vectors must be defined at collection creation time - you cannot add them to an existing collection

2. Each named vector is independent and has its own index

As you mentioned, you’ve already created your collection, so this would require a migration to a new collection with the proper configuration.

Best regards,  
Mohamed Shahin  
Weaviate Support Engineer  
(Ireland, GMT/UTC timezone)

---

<div class="post-metadata">

**Author:** ![Tejas\_Sharma](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.weaviate.io/tejas_sharma/32/2086_2.png) [@Tejas\_Sharma](https://forum.weaviate.io/u/Tejas_Sharma)\
**Post date:** [April 28, 2025, 4:43pm UTC](https://forum.weaviate.io/t/have-multiple-vectors-for-a-single-object-in-the-same-index/20817/3 "2025-04-28T16:43:53Z")

</div>

Hey Mohamed,

Thanks for responding. Those are exactly the problems I have with named vectors, both of them.

I need to be able to search on the same index. Is there no solution for this?

---

<div class="post-metadata">

**Author:** ![Shahin](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.weaviate.io/shahin/32/7944_2.png) [@Shahin](https://forum.weaviate.io/u/Shahin)\
**Post date:** [April 29, 2025, 9:33am UTC](https://forum.weaviate.io/t/have-multiple-vectors-for-a-single-object-in-the-same-index/20817/4 "2025-04-29T09:33:50Z")

</div>

To be honest, aside from what you’ve already shared—which I agree is a bit clunky—I’m not entirely sure of a better alternative at the moment.

If I come across easier solution, I’ll definitely let you know. It might also someone from the community has tackled this differently - let’s see.

Best regards,

Mohamed Shahin  
Weaviate Support Engineer  
(Ireland, GMT/UTC timezone)

---

<div class="post-metadata">

**Author:** ![DudaNogueira](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.weaviate.io/dudanogueira/32/7846_2.png) [@DudaNogueira](https://forum.weaviate.io/u/DudaNogueira)\
**Post date:** [April 29, 2025, 1:49pm UTC](https://forum.weaviate.io/t/have-multiple-vectors-for-a-single-object-in-the-same-index/20817/5 "2025-04-29T13:49:06Z")

</div>

Hi @Tejas_Sharma !

One possibility to explore is [Ref2Vec](https://weaviate.io/developers/weaviate/modules/ref2vec-centroid)

That way you can have your content chunks vectorized independently and providing their vectors to the record centroid.

Now you can search per record (against the record’s chunk centroid) and per individual chunk directly.

And each chunk will have a cross reference to the record.

You can maybe have named vectors for the record, and weight different vector search between the ref2vec and different other modules. 🤔

That would also require some migration/remodeling and a lot of experimenting 🙂

Happy coding!

---

<div class="post-metadata">

**Author:** ![Tejas\_Sharma](https://yyz1.discourse-cdn.com/flex027/user_avatar/forum.weaviate.io/tejas_sharma/32/2086_2.png) [@Tejas\_Sharma](https://forum.weaviate.io/u/Tejas_Sharma)\
**Post date:** [April 29, 2025, 6:01pm UTC](https://forum.weaviate.io/t/have-multiple-vectors-for-a-single-object-in-the-same-index/20817/6 "2025-04-29T18:01:50Z")

</div>

Thanks @Shahin @DudaNogueira !

Oh wow Ref2Vec seems interesting, but it would require a migration still right… I think the chunking + separate record + with a metadata property `foreignId` to the original record seems the easiest.

Do you guys think there are any performance problems with this approach? Main one I see is I need to do a separate get\_by\_id call to fetch the latest original record using the foreignId
