2015-01-16 17 views
7

Ich verwende die Skripte aggressiv für Scoring und Aggregation. Eine Sache, die ich nicht herausfinden kann, ist, wie Logs aus dem Skript ausgegeben werden. Ich habe versucht console.log, aber dann hat es nicht geklappt. Bitte lassen Sie mich wissen, wie ich Logs von meinem groovigen Skript ausstrahlen kann.Access Logger von Elasticsearch Skript

Antwort

9

Dies kann durch Zugriff auf die globale Elasticsearch Logger-Instanz erfolgen. Sein grooviges Beispiel ist unten angegeben Sie sollten etwas ähnliches für Javascript und andere Skriptsprachen auch tun können.

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

Wenn Sie also eine hinsichtlich Aggregation tun, können Sie so etwas wie unten tun -

"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;" 
      } 
     } 
} 

Einige gute Leute aus Elasticsearch hat eine gute Dokumentation auf es gegen ein Problem gegeben.

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

ich auch einige Beispiele gegeben haben here.

+2

Wenn Sie Elasticsearch 2.2 oder höher verwenden, müssen Sie ausdrücklich zulassen, dass die Klassen importiert werden. Siehe http://stackoverflow.com/questions/36820449/elasticsearch-unable-to-import-logger – Aaron

Verwandte Themen