0

Ich habe Dokumente aus verschiedenen Anwendungen in einem Index, mit Anwendung Name ein Feld in jedem Dokument. Jetzt möchte ich die Anzahl der Dokumente pro Anwendung pro Tag zählen. Der Name der Anwendung ist im String-Format, daher kann ich keinen Filterbegriff dafür verwenden. Während die unter GET-Abfrage funktioniert die Filterung pro AnwendungKombinieren Query_string und Aggregationen

{ 
    "query": { 
    "filtered": { 
     "query": { 
     "query_string": { 
      "query": "+environmentType:prod +application:app1", 
      "analyze_wildcard": true 
     } 
     } 
    } 
    } 
} 

und ich diese Aggregation für einfache tägliche Zählungen kann

{ 
    "aggs": { 
    "simpleDatehHistogram": { 
     "date_histogram": { 
     "field": "timestamp", 
     "interval": "day" 
     } 
    } 
    } 
} 

scheine ich nicht in der Lage sein, sie zu kombinieren, so dass die Anwendung Filter wird auf meine Aggregationsergebnisse angewendet.

Dies ist die Zuordnung meines Index.

{ 
    "myIndex" : { 
    "mappings" : { 
     "myType" : { 
     "properties" : { 
      "application" : { 
      "type" : "string" 
      }, 
      "environmentType" : { 
      "type" : "string" 
      }, 
      "event" : { 
      "properties" : { 
       "Id" : { 
       "type" : "long" 
       }, 
       "documentId" : { 
       "type" : "string" 
       }, 
      } 
      }, 
      "hostname" : { 
      "type" : "string" 
      }, 
      "id" : { 
      "type" : "string" 
      }, 
      "timestamp" : { 
      "type" : "date", 
      "format" : "dateOptionalTime" 
      }, 
      "timestampEpoch" : { 
      "type" : "long" 
      }, 
      "type" : { 
      "type" : "string" 
      }, 
      "version" : { 
      "type" : "string" 
      } 
     } 
     } 
    } 
    } 
} 

Antwort

0

verwenden, sie zu kombinieren:

{ 
    "size" : 0,   
    "query": { 
    "filtered": { 
    "query": { 
    "query_string": { 
     "query": "+environmentType:prod +application:app1", 
     "analyze_wildcard": true 
     } 
    } 
    } 
    }, 
    "aggs": { 
    "simpleDatehHistogram": { 
    "date_histogram": { 
    "field": "timestamp", 
    "interval": "day" 
     } 
    } 
    } 
} 
+0

dies war das erste, was ich wirklich versucht, aber die Ergebnisse sind identisch, unabhängig von Namen meiner Anwendung, also denke ich, dass die Filter nicht angewandt wird. .. – Acalypha

+0

Können Sie einfach Mapping Ihres Indexes buchen. 'GET index/type/_mapping' – Richa

+0

Ich habe gerade versucht oben Abfrage und es brachte mir Aggregation Buckets auf der Grundlage der oben angewandten Abfrage. Kannst du mehr dazu sagen? – Richa

Verwandte Themen