server/src/app/Http/Controllers/Api/GeoStatsController.php
changeset 308 e032d686d88e
child 320 0fce13da58af
equal deleted inserted replaced
307:07b44a378ad8 308:e032d686d88e
       
     1 <?php
       
     2 
       
     3 namespace CorpusParole\Http\Controllers\Api;
       
     4 
       
     5 use Illuminate\Http\Request;
       
     6 
       
     7 use CorpusParole\Http\Requests;
       
     8 use CorpusParole\Http\Controllers\Controller;
       
     9 use Es;
       
    10 
       
    11 class GeoStatsController extends Controller
       
    12 {
       
    13     /**
       
    14      * Display the specified resource.
       
    15      *
       
    16      * @return \Illuminate\Http\Response
       
    17      */
       
    18     public function index(Request $request)
       
    19     {
       
    20         $query = [
       
    21             'index' => env('ELASTICSEARCH_INDEX'),
       
    22             'body' => [
       
    23                 "size" => 0,
       
    24                 "aggs" => [
       
    25                     "geos" => [
       
    26                         "terms" => [
       
    27                             "size" => 0,
       
    28                             "field" => "geonames_hierarchy"
       
    29                         ]
       
    30                     ]
       
    31                 ]
       
    32             ]
       
    33         ];
       
    34         $esRes = Es::search($query);
       
    35 
       
    36         $geosats = [];
       
    37 
       
    38         foreach($esRes['aggregations']['geos']['buckets'] as $bucket) {
       
    39             $geosats[(string)($bucket['key'])] = $bucket['doc_count'];
       
    40         }
       
    41 
       
    42         return response()->json(['geostats' => $geosats ]);
       
    43     }
       
    44 }