2017-04-03 3 views
1

Ich habe eine Abfrage eines verschachtelten Datentyps und möchten die Statistik Aggregation für den verschachtelten Datentyp (gefiltert durch die Abfrage) zurückgeben. Hier ist der Code:Elasticsearch Bereich verschachtelte Aggregation zu der Abfrage

GET dan-created/_search 
{ 
    "_source" : ["m_iID", "m_iYear"], 
    "query": { 
     "nested": { 
     "path": "m_PeopleList", 
     "query": { 
      "match": { 
       "m_PeopleList.name": "Daniel" 
      } 
     }, 
     "inner_hits" : {} 
     } 
    }, 
    "aggregations" : { 
    "people" : { 
     "nested" : { 
      "path" : "m_PeopleList" 
     }, 
     "aggregations" : { 
      "averageDist": { 
      "stats" : { 
       "field":"m_PeopleList.value" 
      } 
      } 
     } 
    } 
    } 
    } 

Die zurückgegebenen Statistiken sind für den gesamten Index, aber ich möchte, dass sie nur zurück für die Spiele aus der Abfrage oben. Ich habe Beispiele woanders gesehen, aber nicht mit der neuesten Version von elasticsearch und ich kann sie nicht zur Arbeit bringen.

Danke, Daniel

Antwort

0

könnten Sie ein Ja filter aggregation

"aggregations" : { 
    "people" : { 
     "nested" : { 
     "path" : "m_PeopleList" 
     }, 
     "aggregations" : { 
     "myFilter": { 
      "filter" : { "match": { "m_PeopleList.name": "Daniel" } }, 
      "aggregations": { 
      "averageDist": { 
       "stats" : { 
       "field":"m_PeopleList.value" 
       } 
      } 
      } 
     } 
     } 
    } 
} 
+0

verwenden, das funktioniert, wie ich will. Ich hätte gedacht, dass es eine Möglichkeit geben würde, dies zu tun, ohne die Filterabfrage zweimal zu spezifizieren. Aber ich sehe, dass, wenn Sie nur die Aggregation möchten Sie den Abfrageabschnitt entfernen und "Größe" hinzufügen können: 0. Vielen Dank! – danieljames

+0

Ohne 'geschachteltes' Dokument könnten Sie den Filter nur einmal definieren. Da Aggregationen und Abfragen nicht die gleiche "verschachtelte" Klausel haben, müssen Sie sie zweimal definieren (mit der Größe! = 0) – ulric260

Verwandte Themen