sksamuel / elastics4中的部分更新

时间:2017-12-17 02:45:51

标签: elastic4s

在对某些文档ID进行部分更新时,有没有办法告诉Elastic忽略不存在的文档:

import com.sksamuel.elastic4s._

 val request = update(id).in(indexAndType).doc(someDoc) 

 elasticApi.execute(request)  // returns a Failure with DocumentMissingException if a document with the given id doesn't exist

1 个答案:

答案 0 :(得分:0)

您当然可以(当然)捕获异常,或者首先执行get请求以查看文档是否存在,然后才进行更新,但是您在编写时并不存在您想要的请求。 / p>

  val f = client.execute {
    get("index", "type", "id")
  }.collect {
    case Right(resp) if resp.result.found => client.execute {
      updateById("index", "type", "id").doc(someDoc)
    }
  }

以上代码来自版本6.1.1。