--- 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 <http://www.europeana.eu/schemas/edm/ProvidedCHO>.
- ?s <http://purl.org/dc/elements/1.1/language> ?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 ]);