7
我积极使用脚本进行评分和聚合。我不知道的一件事是如何从脚本中发射日志。我试过console.log,但后来没有成功。请让我知道,我可以如何从我的groovy脚本发射日志。Elasticsearch脚本访问记录器
我积极使用脚本进行评分和聚合。我不知道的一件事是如何从脚本中发射日志。我试过console.log,但后来没有成功。请让我知道,我可以如何从我的groovy脚本发射日志。Elasticsearch脚本访问记录器
这可以通过访问全局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。
对于那些使用Elasticsearch 2.2或更高版本的人,您需要特别允许导入类。见http://stackoverflow.com/questions/36820449/elasticsearch-unable-to-import-logger – Aaron