case class Character(name: String, location: String)

implicit object CharacterHitAs extends HitAs[Character] {
  override def as(hit: RichSearchHit): Character = {
Character(hit.sourceAsMap("name").toString, hit.sourceAsMap("location").toString) }}

val resp = client.execute {
search in "gameofthrones" / "characters" query "kings landing"
}.await

val characters :Seq[Character] = resp.as[Character]