es-painless

作者: 宙斯是只猫 | 来源:发表于2019-07-05 00:06 被阅读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文档,具体的语法看文档吧,主要是内置对象,可以做批量更新,聚合,查询等等操作,很实用

    相关文章

      网友评论

        本文标题:es-painless

        本文链接:https://www.haomeiwen.com/subject/gscjhctx.html