Overview
Node parsers split documents into smaller chunks (nodes) for processing. They handle text segmentation, maintain relationships between chunks, and preserve metadata.NodeParser
Abstract base class for all node parsers.Properties
boolean
default:true
Whether to include document metadata in parsed nodes
boolean
default:true
Whether to include previous/next relationships between consecutive chunks
Methods
method
Parse documents into nodes
TextSplitter
Abstract base class for text splitting strategies.Methods
method
Split a single text into chunks
method
Split multiple texts into chunks
SentenceSplitter
Splits text by sentences with configurable chunk size and overlap.Constructor Options
number
default:1024
Maximum number of characters per chunk
number
default:200
Number of characters to overlap between chunks
string
default:" "
Separator to use when splitting
string
default:"\n\n\n"
Separator for paragraph boundaries
string
default:"\n\n"
Secondary separator (e.g., line breaks)
Example
MarkdownNodeParser
Splits markdown documents while preserving structure.Constructor Options
number
default:1024
Maximum characters per chunk
number
default:200
Overlap between chunks
Example
MetadataAwareTextSplitter
Abstract base for splitters that consider metadata when chunking.Node Relationships
Parsed nodes automatically include relationships:Metadata Inheritance
Nodes inherit metadata from parent documents:Character Positions
Parsers track character positions in the original document:Custom Node Parser
Create custom parsers by extending NodeParser:Best Practices
- Choose appropriate chunk size: Smaller chunks (256-512) for precise retrieval, larger chunks (1024-2048) for more context
- Use overlap: 10-20% overlap helps maintain context across chunk boundaries
- Preserve structure: Use MarkdownNodeParser for markdown to maintain headings and formatting
- Consider token limits: Account for model context windows when setting chunk sizes