私は、Elastic4s マニュアルのこの例を使用してきました。ケース クラスでフィールドが指定されていないドキュメントを取得しようとするまでは、正常に動作しています。
name
マニュアルのこの例では、1 つの結果にのみフィールドがあり、フィールドが欠落していたとしましょうlocation
。次のエラーが発生します。
java.util.NoSuchElementException: キーが見つかりません: 場所
さまざまなフィールドを持つ検索結果を処理するための適切なアプローチを探しています。
コードサンプル:
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]