2016-03-28 4 views
0

Ich habe eine Abfrage, die funktioniert. Es aggregiert Daten basierend auf der ID und findet das MOST RECENT Objekt basierend auf dem erstellten Feld. Das Problem, das ich habe, ist, dass ich das ZWEITE MOST RECENT anstelle von MOST RECENT finden möchte. Wie würde ich darüber gehen? Ich habe die ganze Dokumentation durchgesehen und alles, was ich finden kann, ist Reichweite, die mir nicht viel hilft. Danke :)Elasticsearch: Datum Aggregation Aktuell

{ 
    "query":{ 
     "match": { 
     "name": "Robert" 
     } 
    }, 
    "aggs": { 
     "previous": { 
      "terms": { 
       "field": "Id", 
       "order": {"timeCreated": "desc"} 
      }, 
      "aggs": { 
       "timeCreated": { 
        "max": {"field": "created"} 
       } 

      } 
     } 
    } 
} 
+0

Was meinst du mit den neuesten Dokumenten ?? Bitte präzisieren Sie – Richa

+0

@Richa, was ich mit den neuesten bedeutet, ist für die "verkauft" -Feld ich möchte die neuesten ab dem aktuellen Datum. Was ich in den Dokumenten gesehen habe, ist eine begrenzte Zeitspanne, aber ich möchte die aktuellste aus der aktuellen Zeit eine Person sucht. – emarel

+0

@Richa lassen Sie mich wissen, wenn Sie weitere Erläuterungen benötigen. Jede mögliche Hilfe würde geschätzt werden – emarel

Antwort

1

Top_hits ist was Sie suchen. Verwenden Sie diese:

{ 
"query":{ 
    "match": { 
    "name": "A" 
    } 
}, 
"aggs": { 
    "previous": { 
     "terms": { 
      "field": "Id" 

     }, 
     "aggs": { 
      "latestRecords": { 
       "top_hits": { 
       "sort": { 
        "created": { 
        "order": "desc" 
        } 
       }, 
       "size" :2 
       } 
      } 
      } 
     } 
    } 
    } 
+0

das funktioniert gut, aber ohne Aggregationen würde es nur die zweitletzte Robert greifen. Ich möchte den zweitletzten Robert von jedem Id finden. Wie kann ich Ihre Lösung so erweitern, dass Sie den zweitjüngsten Robert aus jeder ID finden können? – emarel

+0

Aktualisierte meine Antwort gemäß Ihrer Anforderung. Sehen Sie, ob es für Sie funktioniert. – Richa

+0

Das funktioniert perfekt! Du bist erstaunlich und ernsthaft gerade meinen Tag gemacht :) Ich war sogar geschockt, dass es das gesamte Objekt zurückgegeben hat, anstatt nur den Schlüssel und die Zählung. Ist das die top_hits Funktion? Wie auch immer, danke soooo viel! – emarel