server/src/app/Http/Controllers/Api/DateStatsController.php
changeset 378 5b47eab083f3
parent 377 52169c718513
child 406 cf0f23803a53
equal deleted inserted replaced
377:52169c718513 378:5b47eab083f3
     5 use Illuminate\Http\Request;
     5 use Illuminate\Http\Request;
     6 use Log;
     6 use Log;
     7 use Es;
     7 use Es;
     8 
     8 
     9 use CorpusParole\Http\Controllers\Controller;
     9 use CorpusParole\Http\Controllers\Controller;
       
    10 use CorpusParole\Libraries\Filters\CorpusFilterManager;
    10 
    11 
    11 
    12 
    12 class DateStatsController extends Controller
    13 class DateStatsController extends Controller
    13 {
    14 {
    14     /**
    15     /**
    17      * @return \Illuminate\Http\Response
    18      * @return \Illuminate\Http\Response
    18      */
    19      */
    19     public function index(Request $request)
    20     public function index(Request $request)
    20     {
    21     {
    21 
    22 
    22         $query = [ "match_all" => []];
    23 
       
    24         $filterManager = new CorpusFilterManager();
       
    25         $filters = $filterManager->prepareFilters($request);
       
    26         unset($filters['dates']);
       
    27         $qFilterParts = $filterManager->buildESFilters($filters);
       
    28 
       
    29         $query = $filterManager->buildQuery($qFilterParts);
    23 
    30 
    24         $esQuery = [
    31         $esQuery = [
    25             'index' => env('ELASTICSEARCH_INDEX'),
    32             'index' => env('ELASTICSEARCH_INDEX'),
    26             'body' => [
    33             'body' => [
    27                 "size" => 0,
    34                 "size" => 0,
    56         $esRes = Es::search($esQuery);
    63         $esRes = Es::search($esQuery);
    57 
    64 
    58         $datestats = [];
    65         $datestats = [];
    59 
    66 
    60         foreach($esRes['aggregations']['datestats']['years']['buckets'] as $bucket) {
    67         foreach($esRes['aggregations']['datestats']['years']['buckets'] as $bucket) {
    61             $datestats[(string)($bucket['key'])] = round($bucket['year_count']['value']);
    68             $c = round($bucket['year_count']['value']);
       
    69             if($c > 0) {
       
    70                 $datestats[(string)($bucket['key'])] = $c;
       
    71             }
    62         }
    72         }
    63 
    73 
    64         return response()->json(['datestats' => $datestats ]);
    74         return response()->json(['datestats' => $datestats ]);
    65     }
    75     }
    66 
    76