【问题标题】:How to convert GetResponse from elastic4s to specific case class?如何将 GetResponse 从 elastic4s 转换为特定案例类?
【发布时间】:2020-09-08 08:57:16
【问题描述】:

我已经使用存储Person案例类的elastic4s为elasticsearch设置了客户端:

case class Person(id: String, name: String)

如何通过 id 获取特定人员并将 GetResponse 转换为此案例类? 我想做的是:

client.execute{
   get(id).from(index, `type`).
}

返回 Future[Response[GetResponse]]

【问题讨论】:

    标签: scala elasticsearch elastic4s


    【解决方案1】:

    我有一段时间没有接触elastic4s,但据我记得你需要提供一个特定的HitReader来响应

    implicit object PersonHitReader extends PersonReader[Character] {
      override def read(hit: Hit): Either[Throwable, Person] = {
        val source = hit.sourceAsMap
        Right(Person(source("id").toString, source("name").toString))
      }
    }
    
    

    https://github.com/sksamuel/elastic4s#hitreader-typeclass

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-23
      • 2021-07-28
      • 1970-01-01
      • 2021-09-27
      • 2015-06-16
      • 2015-09-09
      • 1970-01-01
      • 2016-07-27
      相关资源
      最近更新 更多