Hello Mason,
Thanks for raising this question, and a big thank you to John Burkholder for sharing such a detailed response and the official documentation link 🙌.
Let me add few more workarounds that addresses your requirement:
1)Set a Large Chunk Size to Prevent Splitting
If you must use Text Split (e.g., with Document Layout enrichment), set maximumPageLength to a number larger than your largest document (e.g., 50,000 or 100,000 characters).
{
"@odata.type": "#Microsoft.Skills.Text.SplitSkill",
"context": "/document",
"textSplitMode": "pages",
"maximumPageLength": 50000,
"pageOverlapLength": 0
}
2)Direct Document Upload Without Chunking
When uploading via the Azure Search REST API or SDK, simply upload each document in full—no chunking is performed unless your pipeline explicitly splits content.
Python SDK Example:
from azure.search.documents import SearchClient
search_client.upload_documents([{
"@search.action": "upload",
"id": "doc1",
"content": entire_document_content,
"title": "Document Title"
}])
Each document will be treated as a single searchable chunk.
Points to remember:
1)Embedding Model Token Limits
Most embedding models (e.g., text-embedding-ada-002) have a maximum token limit (usually 8,191 tokens; around 6,000 words).
If your document exceeds this limit, the embedding will be truncated.
For very large documents, consider summarizing or chunking only when necessary.
2)Performance Trade-offs
While treating each document as a single chunk is possible, large documents can affect search response times and relevance. Consider the use case and test for optimal performance.
Reference:
Chunking Techniques
Please feel free to accept this as an answer and upvote.
Thank you for reaching out to the Microsoft QNA Portal. 😊