If you're building RAG systems and hitting accuracy walls around 60% on complex documents, you're not alone. Traditional RAG relies on vector embeddings and cosine similarity to find relevant chunks, but this approach struggles with nuanced queries that require understanding document structure. PageIndex offers a different path: a vectorless RAG system that builds semantic tree structures and lets the LLM reason about which section contains the answer. This method achieved 98.7% accuracy on FinanceBench, a challenging benchmark using financial documents like 10-Ks and annual reports.
What Is Vectorless RAG and How Does It Work
Vectorless RAG abandons the entire embedding pipeline. Instead of converting text chunks into high-dimensional vectors and searching for similar ones, it creates a hierarchical tree structure that mirrors how humans organize information.
Think of it like a table of contents, but with full text at every node. The system builds a semantic tree where each branch represents a logical section of your document. When you ask a question, the LLM doesn't calculate cosine similarities between your query embedding and thousands of chunk embeddings. Instead, it reasons: "Which chapter or section would most likely contain the answer to this question?"
PageIndex implements this by having the LLM examine the document structure and make sequential decisions. If you ask "What was the company's revenue growth in Q3?", the system might reason through: "This is a financial performance question, likely in the Financial Results section, specifically in the Quarterly Performance subsection." The LLM then retrieves only that specific section's content.
This structured reasoning approach eliminates three major pain points: chunking strategy decisions (how big should chunks be?), embedding model selection (which model captures semantic meaning best?), and approximate nearest neighbor search tuning. Plus two more: how many neighbors to retrieve, and which distance metric actually works.
PageIndex vs Traditional RAG Embeddings Comparison
Traditional RAG systems using vector databases like Pinecone or Weaviate typically plateau at 60% accuracy on complex documents. This isn't because the technology is bad. It's because similarity search fundamentally can't distinguish between "this chunk mentions the topic" and "this chunk answers the question."
Here's a concrete example: if your document discusses revenue in five different sections (projections, historical data, regional breakdowns, quarterly results), a vector search for "Q3 revenue" might return chunks from all five sections because they're all semantically similar. You then rely on the LLM to sort through irrelevant context, which wastes tokens and introduces noise.
PageIndex's semantic tree approach achieved 98.7% accuracy on FinanceBench specifically because it can reason about document structure. When tested on the same financial documents, traditional RAG systems using state-of-the-art embeddings scored between 58% and 67%. That's a 32 percentage point improvement, which matters enormously when you're building systems for financial analysis, legal review, or compliance checking.
The performance gap widens as documents get more complex. A 200-page annual report with nested sections, cross-references, and multiple discussion threads about similar topics completely confounds similarity search. The semantic tree handles it naturally because the LLM can reason: "They're asking about cash flow from operations, not cash flow from financing, so I need the Operating Activities subsection under the Cash Flow Statement section."
How to Improve RAG Accuracy Without Vector Databases
You don't need to rip out your entire RAG infrastructure immediately. Start by identifying which documents or query types are failing with your current vector-based approach. Financial documents, legal contracts, technical manuals, and research papers are prime candidates for semantic tree navigation.
The first step is document structure extraction. PageIndex automatically analyzes your document to identify hierarchical relationships. For a PDF annual report, it might detect: Company Overview, then Business Segments, then Financial Statements, then Notes to Financial Statements. Each of these becomes a node in the tree, with the full text of that section attached.
You can implement a basic version yourself using an LLM with good reasoning capabilities. Feed the document to the LLM and ask it to generate a hierarchical outline with section summaries. Store this outline along with pointers to the full text of each section. When a query comes in, ask the LLM: "Given this outline, which section would most likely contain information to answer this question?"
The LLM returns the section identifier, you retrieve that section's full text, and then you run your normal RAG completion step. This hybrid approach lets you test vectorless retrieval on specific document types while keeping your existing vector database for simpler queries.
Semantic Tree Navigation for Document Retrieval AI
The semantic tree isn't just a fancy outline. It's a decision tree that the LLM traverses using reasoning rather than math. At each node, the LLM asks: "Does my query relate to this branch or should I explore a different one?"
PageIndex structures this as a multi-step reasoning process. The system doesn't just pick the most relevant section in one shot. It starts at the root, examines the top-level sections, selects the most relevant branch, then examines that branch's subsections, and continues until it reaches a leaf node with the specific content needed.
This mimics how you'd use a table of contents in a physical book. You don't read every entry and calculate which is most similar to your question. You reason: "I need financial data, not company history, so I'll skip to Chapter 4. Within Chapter 4, I need quarterly results, not annual summaries, so I'll go to Section 4.3."
For implementation, you'll need roughly 10,000 tokens of context window to hold the tree structure for a typical 100-page document. Modern LLMs like GPT-4 or Claude handle this easily. The tree itself is stored as structured JSON, with each node containing a title, summary, and pointer to the full text location.
Building Your First Semantic Tree
Start with a well-structured document that already has clear sections. PDFs with bookmarks or HTML documents with heading tags work best for your first implementation. Extract the document structure programmatically if possible.
Here's a simplified example of what the semantic tree JSON looks like:
{
"title": "Annual Report 2023",
"summary": "Complete financial and operational overview",
"children": [
{
"title": "Financial Statements",
"summary": "Income statement, balance sheet, cash flow",
"children": [
{
"title": "Income Statement",
"summary": "Revenue, expenses, net income by quarter and year",
"text_pointer": "section_3_1",
"children": []
}
]
}
]
}
When a query arrives, you pass this tree structure to the LLM with a prompt like: "Given this document structure, which section would contain information to answer: 'What was Q3 revenue?' Respond with the section path."
The LLM might respond: "Financial Statements > Income Statement". You then retrieve the full text from section_3_1 and use it as context for the final answer generation.
Handling Complex Queries
Some questions require information from multiple sections. "How did revenue growth compare to operating expense growth?" needs data from both revenue and expense sections. PageIndex handles this by allowing the LLM to identify multiple relevant branches.
Your prompt should explicitly allow for this: "Which section or sections would contain information to answer this question? If multiple sections are needed, list all relevant paths." The LLM can then return multiple section identifiers, and you retrieve all of them before generating the final answer.
This multi-section retrieval still outperforms vector search because you're getting precisely the sections needed, not chunks that happen to be semantically similar to your query. You might retrieve 2-3 specific sections totaling 2,000 tokens instead of 10 similar chunks totaling 4,000 tokens with significant redundancy.
Alternatives to Pinecone and Vector Embeddings for RAG
Vector databases serve a purpose, but they're not the only solution for retrieval. PageIndex represents one alternative. Other approaches include keyword-based retrieval with BM25, graph-based retrieval using knowledge graphs, and hybrid systems that combine multiple methods.
BM25 is an older algorithm that scores documents based on term frequency and inverse document frequency. It's fast and requires no embeddings, but it struggles with semantic understanding. If your query uses different words than the document, BM25 won't find it. That said, BM25 can achieve 70-75% accuracy on well-structured documents with consistent terminology.
Graph-based retrieval builds a knowledge graph where entities and concepts are nodes, and relationships are edges. When you query the system, it traverses the graph to find connected information. This works exceptionally well for documents with many cross-references and relationships, but building the initial graph requires significant upfront work. Expect to spend 3-4 hours per document creating a useful knowledge graph manually, or use an LLM to generate it automatically with 80-85% accuracy.
PageIndex's semantic tree approach sits between these extremes. It requires less setup than a full knowledge graph but provides more semantic understanding than BM25. The 98.7% accuracy on FinanceBench came from documents that are notoriously difficult for vector search because they're long, dense, and use similar language to discuss different topics.
If you're currently using Pinecone or another vector database and hitting accuracy limits, you don't have to choose one approach exclusively. Many production systems use vector search for broad retrieval (getting 20-30 potentially relevant chunks) and then use semantic tree reasoning to select the 2-3 most relevant ones. This hybrid approach can boost accuracy to 85-90% while maintaining the speed benefits of vector search.
Implementation Timeline and Getting Started
PageIndex claims you can implement their system in approximately 45 minutes if you're already familiar with LLM integration. That's realistic if you're starting with well-structured documents and have existing LLM API code.
Here's what that 45-minute timeline looks like: 10 minutes to extract document structure and build the semantic tree JSON, 15 minutes to write the query-to-section-path prompt and test it with sample queries, 10 minutes to integrate section retrieval with your existing document storage. Then 10 minutes to connect everything to your answer generation pipeline.
If you're building from scratch or working with poorly structured documents, expect 3-4 hours for your first implementation. You'll spend most of that time on document structure extraction and prompt engineering to get the LLM to reliably return section paths in a consistent format.
For developers who want to experiment with these concepts before committing to a specific tool, you can build a basic version using Python and any LLM API. If you need to brush up on Python for AI development, check out how to learn Python for AI and build real apps step by step.
Testing and Validation
Don't trust accuracy claims without testing on your specific documents. Create a test set of 20-30 questions with known correct answers from your documents. Run both your current vector-based RAG and the semantic tree approach, then compare accuracy.
Track not just whether the system got the right answer, but also how many tokens it used and how long retrieval took. Semantic tree navigation typically uses 30-40% fewer tokens than vector search because it retrieves only relevant sections instead of multiple similar chunks. This translates to real cost savings at scale.
You should also test edge cases: questions that require multiple sections, questions about topics mentioned briefly in many places. And questions that require reasoning across the document structure. These are where semantic trees shine compared to similarity search.
When Vectorless RAG Makes Sense for Your Use Case
Vectorless RAG isn't universally better than vector embeddings. It excels with structured documents where section organization matters: financial reports, legal contracts, technical documentation, research papers. These documents have logical hierarchies that mirror how people think about the content.
It's less effective for unstructured content like chat logs, email threads, or social media posts. These don't have inherent hierarchical structure, so there's nothing for the semantic tree to represent. Stick with vector embeddings for these use cases.
The accuracy improvement also depends on query complexity. Simple fact-lookup questions ("What is the company's headquarters address?") work fine with vector search. Complex analytical questions ("How did the company's debt-to-equity ratio change relative to industry peers?") benefit enormously from semantic tree navigation because they require synthesizing information from specific, identifiable sections.
If you're building RAG for mission-critical applications where accuracy directly impacts business decisions, the jump from 60% to 98% accuracy justifies the implementation effort. For internal knowledge bases or casual Q&A systems, the improvement might not matter enough to warrant changing your existing infrastructure.
The semantic tree approach also shines when you need explainability. You can show users exactly which section the answer came from, making it easy to verify and building trust in the system. Vector search gives you chunk IDs and similarity scores, which don't mean much to non-technical users. Honestly, they don't mean much to technical users either when you're trying to debug why the system got something wrong.
Look, PageIndex's vectorless RAG represents a genuine alternative to the embedding-heavy approach that dominates most RAG implementations. The 98.7% accuracy on FinanceBench demonstrates that structured reasoning can outperform similarity search on complex documents. If your RAG system is stuck at 60-70% accuracy despite tuning chunk sizes and trying different embedding models, it's worth testing whether semantic tree navigation solves your problem. The 45-minute implementation timeline makes it a low-risk experiment with potentially high-impact results for document-heavy applications where accuracy isn't negotiable.
Get a free AI-powered SEO audit of your site
We'll crawl your site, benchmark your local pack, and hand you a prioritized fix list in minutes. No call required.
Run my free audit