10 Comments
User's avatar
Alejandro Drausal's avatar

👏🏼

Paul Iusztin's avatar

Great article 🤘

Brian Tetreault's avatar

With Graph RAG, what's the actual output structure look like as part of the retrieval step, where a graph is queried (traversed?) and relevant nodes/edges/etc are returned and given to the LLM as context to the original query... what is typically the actual structure of that data? trying to understand how a table or JSON style structure would convey the additional value that using a graph affords (hope that makes sense!)

Brian Tetreault's avatar

Disregard - I asked Cluade to help explain that to me, and got the answer :)

Rajendrasinh Parmar's avatar

Thank you for the detailed article. I was also exploring and experimenting with Graph RAG. Are there any suggestions on improving the speed of the retrieval?

Nir Diamant's avatar

Great question :) To speed up retrieval in Graph RAG, try optimizing graph construction (prune low-relevance nodes, use HNSW indexing), improve query execution (hybrid vector + graph retrieval, caching frequent paths), and refine embeddings (GraphSAGE, Node2Vec). Also, maintaining the graph structure regularly and using tiered memory caching can help

Johan's avatar

When playing around with GraphRAGs like Neo4j and MS GraphRAG, I’ve been under the impression I need 2 flights to the LLM, I.e

1. Vector based search

2. LLM assessing the most relevant nodes

3. LLM structures Cypher/graph search/”walking” with the most relevant nodes as base

4. LLM receives response and crafts answer to user

This is obviously incredibly slow. Am I misunderstanding something?

User's avatar
Comment deleted
Mar 12, 2025
Comment deleted
Nir Diamant's avatar

Graph RAG vectorizes both nodes and edges using embedding techniques like GraphSAGE or Node2Vec. Unlike Pinecone/OpenSearch, which focus on vectorizing unstructured text for semantic search, Graph RAG captures structured relationships, enabling richer reasoning over knowledge graphs