一尘不染

从Elasticsearch脚本访问记录器

elasticsearch

我积极使用脚本进行评分和汇总。我不知道的一件事是如何从脚本发出日志。我尝试了console.log,但后来没有成功。请让我知道,我该如何从常规脚本中发出日志。


阅读 220

收藏
2020-06-22

共1个答案

一尘不染

这可以通过访问全局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的好人针对问题提供了很好的文档。

链接-https:
//github.com/elasticsearch/elasticsearch/issues/9068

在这里也给出了一些例子。

2020-06-22