diff -r 02f113d43f18 -r 52169c718513 server/src/app/Http/Controllers/Api/DiscourseController.php --- a/server/src/app/Http/Controllers/Api/DiscourseController.php Thu Oct 20 15:09:31 2016 +0200 +++ b/server/src/app/Http/Controllers/Api/DiscourseController.php Thu Oct 20 17:27:36 2016 +0200 @@ -2,25 +2,14 @@ namespace CorpusParole\Http\Controllers\Api; -// use CorpusParole\Http\Requests; use CorpusParole\Http\Controllers\Controller; use Illuminate\Http\Request; -use EasyRdf\Resource; -use EasyRdf\Literal; -use CorpusParole\Libraries\Sparql\SparqlClient; -use CorpusParole\Services\LexvoResolverInterface; -use CorpusParole\Services\BnfResolverInterface; - +use Es; class DiscourseController extends Controller { - private $sparqlClient = null; - - public function __construct(SparqlClient $sparqlClient) { - $this->sparqlClient = $sparqlClient; - } /** * Display the specified resource. @@ -30,21 +19,28 @@ public function index(Request $request) { - $query = preg_replace('/\s+/', ' ', "SELECT (?o AS ?res) (COUNT(?s) AS ?count) WHERE { - ?s a . - ?s ?o. - FILTER(uri(?o) in (<".implode('>,<', array_keys(config('corpusparole.corpus_discourse_type'))).">)) - } - GROUP BY ?o - ORDER BY DESC(?count)"); + $query = [ "match_all" => []]; - $docs = $this->sparqlClient->query($query); + $esQuery = [ + 'index' => env('ELASTICSEARCH_INDEX'), + 'body' => [ + "size" => 0, + "query" => $query, + "aggs" => [ + "discourses" => [ + "terms" => [ "field" => "discourse_types", "order" => [ "_count" => "desc" ], "size" => 0 ] + ] + ] + ] + ]; + + $esRes = Es::search($esQuery); $discourses = []; - foreach ($docs as $row) { - $key = $row->res->getUri(); - $count = $row->count->getValue(); + foreach ($esRes['aggregations']['discourses']['buckets'] as $b) { + $key = $b['key']; + $count = $b['doc_count']; $label = config('corpusparole.corpus_discourse_type')[$key]; $discourses[$key] = [ "label" => $label,