For large texts, indexing with offsets or term vectors is recommended

This situation wasn't handled particularly well in elasticsearch - throwing out a whole search request because one doc was large.
Coming in 7.12 is a new query flag which simply truncates the size of doc text we try highlighting on rather than requiring you to reindex or up the limit set on the index. It's a better overall solution.

As a workaround one approach I often advocate is to take large documents e.g. books and index as multiple smaller docs e.g. one per chapter