liveBook · Manning

RecursiveCharacterTextSplitter

As explained in Build AI-Enhanced Web Apps

RecursiveCharacterTextSplitter is a LangChain text-splitting component that recursively divides text into size-bounded chunks while retaining configured overlap.

RecursiveCharacterTextSplitter is a LangChain component for turning documents into size-bounded chunks suitable for model processing, embeddings, summarization, or vector storage. It begins with larger separators such as newlines and recursively falls back to smaller character separators, preserving semantic structure where possible. section 6.2.1 section 7.1.3

Configure the splitter around two primary controls and one processing method:

  • Set chunkSize to the maximum number of characters in each chunk. section 6.2.1
  • Set chunkOverlap to repeat characters between adjacent chunks, retaining context across boundaries. section 6.2.1 section 7.1.3
  • Call createDocuments([text]) for Document instances, or splitDocuments(documents) for already loaded documents. section 6.2.1 section 7.1.3

Split text for retrieval

const splitter = new RecursiveCharacterTextSplitter({ chunkSize: 100, chunkOverlap: 20, }); const output = await splitter.createDocuments([text]); // output contains Document instances with pageContent and metadata. section 6.2.1

Prepare documents for summarization

const splitter = new RecursiveCharacterTextSplitter({ chunkSize: 1500, chunkOverlap: 200, }); const documentChunks = await splitter.splitDocuments(documents); section 7.1.3

Table 6.2 LangChain text splitters

Name

Splits

Adds metadata?

Description/use case

Recursive

Specific character

Yes

Recursively splits text while keeping related pieces together; recommended for initial splitting

HTML

HTML characters

Yes

Splits text based on HTML tags and structures

Markdown

Markdown syntax

Yes

Splits text according to Markdown syntax

Code

Code-specific characters

Yes

Splits code based on syntax specific to various programming languages

Token

A token

No

Splits text on tokens, with various methods available for token measurement

Character

A single user-defined character

No

Simple splitting based on a specified character

Compare recursive, HTML, Markdown, code, token, and character splitters when document structure or measurement requirements call for an alternative. section 6.2.1

How Build AI-Enhanced Web Apps covers it

How deep it goes
Explains recursive separator fallback, overlap, parameters, and JavaScript methods, but does not specify a tuning procedure.
Examples
Uses 100-character chunks with 20-character overlap for retrieval and 1,500-character chunks with 200-character overlap for summarization.
What it assumes
Assumes text or loaded Document inputs and introduces chunk sizing, overlap, recursive separators, and Document outputs.
What you can do after
Apply it via LangChain.js to create or split Documents before retrieval or MapReduce summarization.
How it connects
Connects text splitting with context windows, Document instances, embeddings, vector databases, summarization, retrieval, and MapReduce.

Also explained in

Compare how 4 books explain RecursiveCharacterTextSplitter →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Build AI-Enhanced Web Apps. The section links point to the parts of the book it draws on.