2016-06-28 10 views
0

Ich verwende eine PHP API, um Dokumente in elastic zu posten, aber ich muss das letzte Dokument abrufen, das entsprechend seinem Zeitstempel veröffentlicht wurde.PHP API zum Abrufen von Dokumenten

Die Abfrage Sinn ich bin derzeit mit, ist dies:

GET index-*/type/_search 
{ 
    "query": { 
    "match_all": {} 
    }, 
    "size": 1, 
    "sort": [ 
    { 
     "timestamp": { 
     "order": "desc" 
     } 
    } 
    ] 
} 

Ich habe es meinen PHP api übersetzt

$params = [ 
    'index' => 'index-*', 
    'type' => 'type', 
    'custom' => [ 
     'query'=> [ 
      'match_all'=> [] 
     ], 
     'size'=> 1, 
     'sort'=> [ 
      [ 
      'timestamp'=> [ 
      'order'=> 'desc' 
       ] 
      ] 
     ] 
    ] 
]; 
$response = $client->get($params); 

Aber es hält leider Fehler und fordert ‚id‘ werfen, aber meine IDs werden eleastisch erzeugt. Ich kann es nicht anders machen. Gibt es einen Weg um Thsi? Dank

Antwort

0

Sie müssen die search method verwenden:

$params = [ 
    'index' => 'index-*', 
    'type' => 'type', 
    'body' => [ 
     'query'=> [ 
      'match_all'=> [] 
     ], 
     'size'=> 1, 
     'sort'=> [ 
      [ 
      'timestamp'=> [ 
      'order'=> 'desc' 
       ] 
      ] 
     ] 
    ] 
]; 
$response = $client->search($params); 
+0

wow, vielen Dank für die schnelle Antwort. Das war ein dummer Fehler von meiner Seite. Danke, – ScipioAfricanus

+0

Keine Sorge, froh, dass es geholfen hat! – Val

Verwandte Themen