server/src/app/Http/Controllers/Api/GeoStatsController.php
changeset 308 e032d686d88e
child 320 0fce13da58af
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/server/src/app/Http/Controllers/Api/GeoStatsController.php	Sun Oct 02 11:49:00 2016 +0200
@@ -0,0 +1,44 @@
+<?php
+
+namespace CorpusParole\Http\Controllers\Api;
+
+use Illuminate\Http\Request;
+
+use CorpusParole\Http\Requests;
+use CorpusParole\Http\Controllers\Controller;
+use Es;
+
+class GeoStatsController extends Controller
+{
+    /**
+     * Display the specified resource.
+     *
+     * @return \Illuminate\Http\Response
+     */
+    public function index(Request $request)
+    {
+        $query = [
+            'index' => env('ELASTICSEARCH_INDEX'),
+            'body' => [
+                "size" => 0,
+                "aggs" => [
+                    "geos" => [
+                        "terms" => [
+                            "size" => 0,
+                            "field" => "geonames_hierarchy"
+                        ]
+                    ]
+                ]
+            ]
+        ];
+        $esRes = Es::search($query);
+
+        $geosats = [];
+
+        foreach($esRes['aggregations']['geos']['buckets'] as $bucket) {
+            $geosats[(string)($bucket['key'])] = $bucket['doc_count'];
+        }
+
+        return response()->json(['geostats' => $geosats ]);
+    }
+}