2017-02-14 3 views
0

ich die Elasticsearch JavaScript-Bibliothek bin mit und bin kämpfen, um herauszufinden, wie nur was ist innerhalb des _source Objekt zurückzukehren ... Ich ziehe, dass diese Daten wie:nur Zurückgeben, was nach innen von _Source

client.search({ 
    index: 'kafkajmx2', 
    body: { 
      "_source": "*", 
      "size": 10000, 
      "query": { 
      "bool": { 
       "must": [ 
       { "match": { "metric_name": "IsrExpandsPerSec.Count" }} 
       ], 
       "filter": [ 
       { 
        "range": { 
        "@timestamp": { 
         "gte": "now-60m" 
        } 
        } 
       } 
       ] 
      } 
      } 

     } 
    }) 

aber ich bekomme nicht nur die Quelle zurück ... wenn ich zu "_source": true ändere, bekomme ich immer noch die gleichen Ergebnisse zurück ...

+1

grundsätzlich kann man nicht. Sie können entweder JSON verwenden, um herauszufinden, was sich in _source befindet, oder einen Zwischenservice verwenden, um die Anfrage an Ihren Zwischendienst zu senden und nur _source_ in Ihrem Javascript zu erhalten. –

Antwort

0

Es gibt Metadaten, die den Ergebnissen zugeordnet sind, die zurückgegeben werden. Das *, das Sie in der _source angeben, wird nur für die Felder in _source verwendet und nicht für die Metadaten, die alles außerhalb des _source-Objekts in Ihrer JSON-Nutzlast sind. Elasticsearch - how to return only data, not meta information? Ich glaube, ist ähnlich, was Sie fragen, und es scheint, dass es nicht machbar ist, obwohl diese Frage ziemlich alt ist, da es neuere Versionen von ElastiSearch gibt. Der Blick auf die neueste Version, ab diesem Schreiben ist 5.2, erlaubt es Ihnen nicht, dies zu tun. Sie müssen die zurückgegebenen Ergebnisse von der Abfrage analysieren.