diff -r 02f113d43f18 -r 52169c718513 server/src/app/Http/Controllers/Api/LanguageController.php --- a/server/src/app/Http/Controllers/Api/LanguageController.php Thu Oct 20 15:09:31 2016 +0200 +++ b/server/src/app/Http/Controllers/Api/LanguageController.php Thu Oct 20 17:27:36 2016 +0200 @@ -2,41 +2,42 @@ namespace CorpusParole\Http\Controllers\Api; -// use Illuminate\Http\Request; -// use CorpusParole\Http\Requests; +use Illuminate\Http\Request; use CorpusParole\Http\Controllers\Controller; -use CorpusParole\Libraries\Sparql\SparqlClient; - +use Es; class LanguageController extends Controller { - private $sparqlClient = null; - - public function __construct(SparqlClient $sparqlClient) { - $this->sparqlClient = $sparqlClient; - } - /** * Display the specified resource. * * @return \Illuminate\Http\Response */ - public function index() + public function index(Request $request) { - $query = "select ?lang (count(?lang) as ?count) where { - ?s a . - ?s ?lang - } - GROUP BY ?lang - ORDER BY DESC(?count)"; + $query = [ "match_all" => []]; - $docs = $this->sparqlClient->query($query); + $esQuery = [ + 'index' => env('ELASTICSEARCH_INDEX'), + 'body' => [ + "size" => 0, + "query" => $query, + "aggs" => [ + "languages" => [ + "terms" => [ "field" => "language", "order" => [ "_count" => "desc" ], "size" => 0 ] + ] + ] + ] + ]; + + $esRes = Es::search($esQuery); $languages = []; - foreach ($docs as $row) { - $languages[$row->lang->getUri()] = $row->count->getValue(); + + foreach ($esRes['aggregations']['languages']['buckets'] as $b) { + $languages[$b['key']] = $b['doc_count']; } return response()->json(['languages' => $languages ]);