# Does Neo4j GraphRAG Support Multiple Vector Indexes?

**URL:** <https://community.neo4j.com/t/does-neo4j-graphrag-support-multiple-vector-indexes/73363>\
**Category:** GraphRAG\
**Created:** [April 4, 2025, 5:45am UTC](https://community.neo4j.com/t/does-neo4j-graphrag-support-multiple-vector-indexes/73363 "2025-04-04T05:45:07Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![kottackaljisa](https://sea1.discourse-cdn.com/flex021/user_avatar/community.neo4j.com/kottackaljisa/32/33890_2.png) [@kottackaljisa](https://community.neo4j.com/u/kottackaljisa)\
**Post date:** [April 4, 2025, 5:45am UTC](https://community.neo4j.com/t/does-neo4j-graphrag-support-multiple-vector-indexes/73363/1 "2025-04-04T05:45:07Z")

</div>

**Hello Neo4j Community,**  
I am currently working with **Neo4j GraphRAG** and exploring its capabilities for **multi-vector index retrieval** in an **LLM-powered** system. I have referred to the official documentation ([Neo4j GraphRAG User Guide](https://neo4j.com/docs/neo4j-graphrag-python/current/user_guide_rag.html#custom-retriever)), which demonstrates how to use a **single vector index** with `VectorRetriever` . However, I need clarification on using multiple vector indexes in a single query.

### **Questions:**

1. **Does Neo4j GraphRAG natively support querying multiple vector indexes simultaneously?**

- If yes, what is the recommended approach?
- If not, is there a roadmap for adding this feature?

1. **The** `MultiVectorRetriever` **class appears in the library but is not mentioned in the documentation.**

- Is this officially supported? If so, how should it be used?

1. **What is the best practice for querying multiple indexes?**

- I am currently initializing multiple `VectorRetriever` instances (one per index) and manually merging the results before passing them to `GraphRAG` .
- Is this the best way to handle multiple indexes, or is there an alternative method?

1. **Does Neo4j support hybrid retrieval combining multiple vector indexes with full-text search?**

- If yes, how can we efficiently merge the results?

### **Context:**

- I am using **SentenceTransformers** for embeddings.
- My LLM is **Mistral**.
- I have **three different vector indexes** (transactions, accounts, illicit transactions) that I want to search across simultaneously.

Any guidance, best practices, or code examples would be greatly appreciated. Thanks in advance! 🙌

---

<div class="post-metadata">

**Author:** ![jennifer\_reif](https://sea1.discourse-cdn.com/flex021/user_avatar/community.neo4j.com/jennifer_reif/32/8061_2.png) [@jennifer\_reif](https://community.neo4j.com/u/jennifer_reif)\
**Post date:** [April 10, 2025, 4:26pm UTC](https://community.neo4j.com/t/does-neo4j-graphrag-support-multiple-vector-indexes/73363/2 "2025-04-10T16:26:48Z")

</div>

Hello! I'm not aware of any frameworks, libraries, or tools that currently allow us to query against multiple vector indexes in a single query. As far as I know, we have to query each vector index separately and combine them afterwards, as you mentioned. I'd love to see this capability in the future, though! 😅

---

<div class="post-metadata">

**Author:** ![joshcornejo](https://sea1.discourse-cdn.com/flex021/user_avatar/community.neo4j.com/joshcornejo/32/34171_2.png) [@joshcornejo](https://community.neo4j.com/u/joshcornejo)\
**Post date:** [April 10, 2025, 6:36pm UTC](https://community.neo4j.com/t/does-neo4j-graphrag-support-multiple-vector-indexes/73363/3 "2025-04-10T18:36:23Z")

</div>

> [@kottackaljisa](#):
>
> MultiVectorRetriever

Is a [langchain retriever](https://python.langchain.com/api_reference/langchain/retrievers/langchain.retrievers.multi_vector.MultiVectorRetriever.html) defined as:

> Retrieve from a set of multiple embeddings for the same document

... it isn't "multiple vector indexes".

Not sure why do you need 3 different vectors ?, as far as i can see "transactions and illicit transactions" are in the same index with just a dimension that differentiates "good" from "bad", and "accounts" are connected to all transactions ...

```auto
(A:Account { id:'abc' } )-[:has]->(T:Transaction { id: "123", valid: true|false } )

```
