make all stats view use elasticsearch. Make sure that the document discourse types are taken form the predefined list
<?php
namespace CorpusParole\Http\Controllers\Api;
use Illuminate\Http\Request;
use Log;
use Es;
use CorpusParole\Http\Controllers\Controller;
class DateStatsController extends Controller
{
/**
* Display the specified resource.
*
* @return \Illuminate\Http\Response
*/
public function index(Request $request)
{
$query = [ "match_all" => []];
$esQuery = [
'index' => env('ELASTICSEARCH_INDEX'),
'body' => [
"size" => 0,
"query" => $query,
"aggs" => [
"datestats" => [
"nested"=> [
"path" => "creation_years"
],
"aggs" => [
"years" => [
"terms"=> [
"field" => "creation_years.year",
"size" => 0,
"order" => [
"_term" => "asc"
]
],
"aggs" => [
"year_count" => [
"sum" => [
"field" => "creation_years.weight"
]
]
]
]
]
]
]
]
];
$esRes = Es::search($esQuery);
$datestats = [];
foreach($esRes['aggregations']['datestats']['years']['buckets'] as $bucket) {
$datestats[(string)($bucket['key'])] = round($bucket['year_count']['value']);
}
return response()->json(['datestats' => $datestats ]);
}
}