工作生活

es-painless

2019-07-05  本文已影响0人  宙斯是只猫

painless之前感觉没必要学,然后最近看了看painless可以做的功能还是很强大的,有的聚合如果能用上painless是很方便的,举个例子
对某一个index中,有两个字段a和b,需求是先算出b-a的值,然后累加,在求avg,这个如果用es的聚合去实现这个流程,至少两次请求,但是painless可以一次就做到

PUT  /test/_doc/1
{
  "a":10,
  "b":20
}

PUT  /test/_doc/2
{
  "a":15,
  "b":26
}

PUT  /test/_doc/3
{
  "a":18,
  "b":26
}

POST /test/_search
{
  "size": 0, 
"aggs": {
  "b_a_avg": {
    "avg": {
      "script": {
        "lang": "painless",
         "source":"return doc['b'].value-doc['a'].value"
      }
    }
  }
}
}

painless文档,具体的语法看文档吧,主要是内置对象,可以做批量更新,聚合,查询等等操作,很实用

上一篇下一篇

猜你喜欢

热点阅读