从Elasticsearch脚本访问记录器

时间:2015-01-16 10:24:07

标签: elasticsearch aggregation

我积极地使用脚本进行评分和聚合。我无法弄清楚的一件事是如何从脚本中发出日志。我试过console.log,但后来没有成功。请告诉我,我如何从我的groovy脚本中发出日志。

1 个答案:

答案 0 :(得分:9)

这可以通过访问全局Elasticsearch记录器实例来完成。 它的常见例子如下 您应该能够为javascript和其他脚本语言做类似的事情。

import  org.elasticsearch.common.logging.*; 
ESLogger logger=ESLoggerFactory.getLogger('myscript'); 
logger.info('This is a log message'); 

因此,当您进行术语聚合时,您可以执行以下操作 -

  "aggregations": {
      "debug":{
          "terms":{
              "script":"import  org.elasticsearch.common.logging.*; ESLogger logger=ESLoggerFactory.getLogger('myscript'); logger.info('This is a log message'); return doc['myField'].value;"
          }
      }
}

Elasticsearch的一些优秀人员针对某个问题提供了很好的文档。

LINK - https://github.com/elasticsearch/elasticsearch/issues/9068

我还举了一些例子here