从 Elasticsearch 脚本访问记录器
Access logger from Elasticsearch script
我积极使用脚本进行评分和汇总。我无法弄清楚的一件事是如何从脚本中发出日志。我尝试了 console.log ,但没有成功。请让我知道,如何从我的 groovy 脚本发出日志。
这可以通过访问全局 Elasticsearch 记录器实例来完成。
它的 groovy 例子如下
您应该也可以为 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。
我积极使用脚本进行评分和汇总。我无法弄清楚的一件事是如何从脚本中发出日志。我尝试了 console.log ,但没有成功。请让我知道,如何从我的 groovy 脚本发出日志。
这可以通过访问全局 Elasticsearch 记录器实例来完成。 它的 groovy 例子如下 您应该也可以为 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。