Après avoir vu comment installé ES sur AWS, nous allons nous pencher sur un cas très simple : l'utilisation et la manipulation de fichier JSON avec PHP. Bien entendu, PHP n'est pas le seul langage à offrir cette possibilité.
Pour cela, nous allons utiliser un exemple de réponse issu de la Google Map API :
{
   "html_attributions" : [],
   "results" : [
      {
         "formatted_address" : "1 Rue XXX, 06000 Nice, France",
         "geometry" : {
            "location" : {
               "lat" : 4X.7046516,
               "lng" : 7.269127099999998
            }
         },
      ...
      },

      {
         "formatted_address" : "12 Rue XXX, 06300 Nice, France",
         ...
      }
   ],
   "status" : "OK"
}


Dans cet exemple nous allons récupérer toutes les adresses d'une requête JSON :

1/ Récupérer le contenu entier

Pour se faire, nous allons utiliser file_get_content, il est aussi possible d'utiliser CURL (voir 3/ Envoi d'une requête CURL)
 
// récupération d'un contenu json provenant d'un url
$json = file_get_contents($url); // http request 
$data = json_decode($json);

2/ Parcourir le fichier et récupérer ce que l'on veut
Une fois que l'on a stocké notre contenu dans notre variable data, on va alors s'en servir comme un tableau.
Pour récupérer l'adresse il faut : chercher formatted_address dans results qui contient plusieurs occurrences car c'est un tableau ([..]).

On va donc créer un autre tableau d'adresses et stocker chaque valeur :

foreach($data->results as $results)
 {
   $address=$results->formatted_address;
   $tab[]=$address;
 }
3/ Envoi d'une requête CURL

Pour envoyer notre tableau de valeurs, on pourra réutiliser CURL pour l'envoyer au format json vers notre serveur Elasticsearch AWS par exemple :

// nom de l'index Elasicsearch
$index="prospect";
 
// tableau qui contient nos informations utiles
 $request = [
 '_index' => $index,
 '_type' => 'googlemap',
 '@timestamp' => $time,
 'name' => $name,
 'zip' => $zip,
 'address' => $adress,
 'tel' => $tel,
 'email' => $email,
 'website' => $website
 ];

// serveur sur lequel envoyer le curl 
 $post = "search-locallbiz-xxx.us-west-2.es.amazonaws.com/".$index."/googlemap"; 
 
// encodage en json de notre objet
 $content = json_encode($request, JSON_FORCE_OBJECT);
 
// envoi POST par curl 
 $curl = curl_init($post);
 curl_setopt($curl, CURLOPT_HEADER, false);
 curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
 curl_setopt($curl, CURLOPT_HTTPHEADER,
 array("Content-type: application/json"));
 curl_setopt($curl, CURLOPT_POST, true);
 curl_setopt($curl, CURLOPT_POSTFIELDS, $content);

 // execution de la requete
 $json_response = curl_exec($curl);
 
 $status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
 
 if ( $status != 201 ) {
 die("Error: call to URL $url failed with status $status, response $json_response, curl_error " . curl_error($curl) . ", curl_errno " . curl_errno($curl));
 }
 
 curl_close($curl);
 
 $response = json_decode($json_response, true);
 

Libre à vous ensuite de récupérer ce qui vous intéresse, que ce soit de l'API Google Map ou de Twitter, Linkedin etc.
Le format JSON devrait être très utilisé dans les années à venir, alors à vos commandes ;)