如何将getresponse从elastic4s转换为特定的case类?

wsxa1bj1  于 2021-06-14  发布在  ElasticSearch
关注(0)|答案(1)|浏览(399)

我已经使用elastic4s为elasticsearch设置了客户端,哪些商店 Person 案例类别:

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

如何通过id获取特定的person并将getresponse转换为这个case类?我想做的是:

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

返回future[response[getresponse]]

gwo2fgha

gwo2fgha1#

我已经有一段时间没有接触过elastic4s了,但据我所知,您需要提供一个特定的hitbreader来进行响应

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-类型类

相关问题