in backend/app/services/index/HitReaders.scala [311:333]
private def highlightedTranscript(maybeHighlights: Option[Map[String, Seq[String]]], maybeTranscript: Option[Map[String, String]]): Option[Map[String, String]] = {
maybeHighlights match {
case Some(highlights) if highlights.nonEmpty =>
val prefix = IndexFields.transcript + "."
val highlightedLanguages = highlights.collect {
case (key, values) if key.startsWith(IndexFields.transcript) && values.nonEmpty =>
key.substring(prefix.length) -> values.head
}
// don't discard languages without matches
val nonHighlightedLanguages = maybeTranscript.map { transcript =>
transcript.collect {
case (key, value) if !highlightedLanguages.contains(key) =>
key -> value
}
}
Some(highlightedLanguages ++ nonHighlightedLanguages.getOrElse(Map()))
case _ =>
None
}
}