--- a/server/src/app/Http/Controllers/Api/GeoStatsController.php Thu Oct 20 17:27:36 2016 +0200
+++ b/server/src/app/Http/Controllers/Api/GeoStatsController.php Thu Oct 20 19:14:37 2016 +0200
@@ -5,6 +5,8 @@
use Illuminate\Http\Request;
use CorpusParole\Http\Controllers\Controller;
+use CorpusParole\Libraries\Filters\CorpusFilterManager;
+
use Es;
use Log;
@@ -18,21 +20,30 @@
public function index(Request $request)
{
$area = $request->input('area');
- $filter = [
- 'match_all' => []
- ];
+
+ $filterManager = new CorpusFilterManager();
+ $filters = $filterManager->prepareFilters($request);
+ unset($filters['location']);
+ $qFilterParts = $filterManager->buildESFilters($filters);
+ if(is_null($qFilterParts)) {
+ $qFilterParts = [];
+ }
+
if(!is_null($area) && $area !== config('corpusparole.geonames_earth_geonamesid')) {
- $filter = [
+ $qFilterParts[] = [
'term' => [
"geonames_hierarchy" => $area
]
];
}
- $query = [
+
+ $query = $filterManager->buildQuery($qFilterParts);
+
+ $queryES = [
'index' => env('ELASTICSEARCH_INDEX'),
'body' => [
"size" => 0,
- "query" => $filter,
+ "query" => $query,
"aggs" => [
"geos" => [
"terms" => [
@@ -43,7 +54,7 @@
]
]
];
- $esRes = Es::search($query);
+ $esRes = Es::search($queryES);
$geosats = [];