2017-04-07 3 views
0

Verwenden von Elastic Search 5.3 Aggregation API - kann keine Abfrage schreiben, die eine Kennzahl für eine Datums-Bucket-Woche-Teilung nach Dimension/Begriff/Feld berechnet. Ich bin in der Lage, die Datums-Buckets zu erstellen und das für diesen Bucket berechnete Measure zu erhalten, aber nicht in der Lage, es durch einen Term zu trennen: sagen Sie, Anwendung oder Begriff sagen Transaktion. Elastic search 5+ Version hat viele APIs von früheren Versionen veraltet. Hier ist, was ich habe - das ist jetzt die Aggregation der Kennzahl über alle Begriffe für diesen Datumsbereich. Muss durch einige Felder/Begriffe getrennt werden. Wie gehe ich vor?Wie kann ich zusätzliche Ausdrücke in der ElasticSearch-Aggregation mit Datetime Buckets hinzufügen?

POST /index_name/_search?size=0 
{ 
    "aggs": { 
    "myname_Summary": { 
     "date_histogram": { 
     "field": "@timestamp", 
     "interval": "week" 
     , "format": "yyyy-MM-dd" 
     , "time_zone": "-04:00" 
     }, 
     "aggs":{ "total_volume" : {"sum": {"field": "volume"}} 
     } 

} 
}} 

Antwort

0

können Sie versuchen, diese

{ 
    "size": 0, 
    "aggs": { 
     "myname_Summary": { 
      "date_histogram": { 
       "field": "@timestamp", 
       "interval": "week", 
       "format": "yyyy-MM-dd", 
       "time_zone": "-04:00" 
      }, 
      "aggs": { 
       "split": { 
        "terms": { 
         "field": "application", 
         "size": 10 
        }, 
        "aggs": { 
         "transaction": { 
          "terms": { 
           "field": "transaction", 
           "size": 10 
          }, 
          "aggs": { 
           "total_volume": { 
            "sum": { 
             "field": "volume" 
            } 
           } 
          } 
         } 
        } 
       } 
      } 
     } 
    } 
} 

Hope this

+0

dank @ user3775217 hilft, ist die geteilten Begriffe mir eine separate Liste von doc_counts pro App geben. nicht das Gesamtvolumen. "Aggregationen": {"myname_Summary": {"Buckets": [{"key_as_string": "2017-03-13", "Schlüssel": 1489377600000, "doc_count": 1101400, "total_volume": {"value": 285977085 }, "split": {"doc_count_error_upper_bound": 652, "sum_other_doc_count": 35778, "Eimer": [{"key": "app2", "doc_count": 671680}, {"key": "app1", " doc_count ": 185564} ... – padma

+0

können Sie den JSON so einstellen, wie das Ergebnis aussehen soll? – user3775217

+0

etwas wie folgt aus: "Aggregationen": { "myname_summary": { "Eimer": [{ "key_as_string": "2017.03.13", "Schlüssel": 1489377600000, "doc_count": 1101400, \t [{ "my_app": App1, \t "my_transaction": "txn1" "total_volume": { "Wert": 2859 }}, \t { "my_app": App2, \t " my_transaction ":" txn1 ", " Gesamtvolumen ": { " Wert ": 1857 }}, \t { "my_app": app3, \t "my_transaction": "txn1", "total_volume": { "Wert": 1659 }} } ] } } – padma

Verwandte Themen