Skip to main content

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.
Useful when metadata should be included in chunk size calculations.

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

  1. Choose appropriate chunk size: Smaller chunks (256-512) for precise retrieval, larger chunks (1024-2048) for more context
  2. Use overlap: 10-20% overlap helps maintain context across chunk boundaries
  3. Preserve structure: Use MarkdownNodeParser for markdown to maintain headings and formatting
  4. Consider token limits: Account for model context windows when setting chunk sizes