Attaching a first working patch.
There is a new param hl.highlightAlternate=true which when enabled will apply the standard highlighter on the alternate field.
We do this by calling doHighlightingByHighlighter() again on the alternate field, but with some hardcoded parameters: hl.snippets=1&hl.fragsize=Int.MAX. We also set hl.maxAnalyzedChars equal to hl.maxAlternateFieldLength if applicable.
There is one TODO. To be able to override these params, I needed to clone the SolrParams object on the request and replace it with a ModifialbleSolrParams, and then put back the old. Might not be thread safe... Perhaps a better way is to add a new params argument to doHighlightingByHighlighter?
Also, I have not tested what happens if people use some other highlighter like FVH. I suspect that other highlighters may not respect hl.pre?
Also, PostingsHighlighter does not support hl.alternateField at all, and FVH users specify pre and post using hl.tag.pre while Simple highlighter uses hl.simple.pre, so hardcoding which highlighter to use for the fallback field would cause problems with these settings not being in sync.
Why cannot all highlighters use the same hl.tag.pre/post params?