equal
deleted
inserted
replaced
1 <?php |
1 <?php |
2 |
2 |
3 namespace CorpusParole\Http\Controllers\Api; |
3 namespace CorpusParole\Http\Controllers\Api; |
4 |
4 |
5 // use Illuminate\Http\Request; |
|
6 // use CorpusParole\Http\Requests; |
|
7 use CorpusParole\Http\Controllers\Controller; |
5 use CorpusParole\Http\Controllers\Controller; |
8 |
6 |
9 use Illuminate\Http\Request; |
7 use Illuminate\Http\Request; |
10 use EasyRdf\Resource; |
8 use EasyRdf\Resource; |
11 use EasyRdf\Literal; |
9 use EasyRdf\Literal; |
13 use Es; |
11 use Es; |
14 use Log; |
12 use Log; |
15 |
13 |
16 use CorpusParole\Services\LexvoResolverInterface; |
14 use CorpusParole\Services\LexvoResolverInterface; |
17 use CorpusParole\Services\BnfResolverInterface; |
15 use CorpusParole\Services\BnfResolverInterface; |
|
16 use CorpusParole\Libraries\Filters\CorpusFilterManager; |
18 |
17 |
19 |
18 |
20 class ThemeController extends Controller |
19 class ThemeController extends Controller |
21 { |
20 { |
22 public function __construct(LexvoResolverInterface $lexvoResolver, BnfResolverInterface $bnfResolver) { |
21 public function __construct(LexvoResolverInterface $lexvoResolver, BnfResolverInterface $bnfResolver) { |
70 } else { |
69 } else { |
71 $order_field = "_count"; |
70 $order_field = "_count"; |
72 $order_dir = "desc"; |
71 $order_dir = "desc"; |
73 } |
72 } |
74 |
73 |
75 $query = [ |
74 $filterManager = new CorpusFilterManager(); |
|
75 $filters = $filterManager->prepareFilters($request); |
|
76 unset($filters['themes']); |
|
77 $qFilterParts = $filterManager->buildESFilters($filters); |
|
78 $query = $filterManager->buildQuery($qFilterParts); |
|
79 |
|
80 |
|
81 $esQuery = [ |
76 'index' => env('ELASTICSEARCH_INDEX'), |
82 'index' => env('ELASTICSEARCH_INDEX'), |
77 'body' => [ |
83 'body' => [ |
78 'size' => 0, |
84 'size' => 0, |
|
85 'query' => $query, |
79 'aggs' => [ |
86 'aggs' => [ |
80 "subjects" => [ |
87 "subjects" => [ |
81 "nested" => [ "path" => "subject" ], |
88 "nested" => [ "path" => "subject" ], |
82 "aggs" => [ |
89 "aggs" => [ |
83 "subjects" => [ |
90 "subjects" => [ |
92 ] |
99 ] |
93 ] |
100 ] |
94 ]; |
101 ]; |
95 |
102 |
96 if($include) { |
103 if($include) { |
97 $query['body']['aggs']['subjects']['aggs']['subjects']['terms']['include'] = $include; |
104 $esQuery['body']['aggs']['subjects']['aggs']['subjects']['terms']['include'] = $include; |
98 } |
105 } |
99 |
106 |
100 $esRes = Es::search($query); |
107 $esRes = Es::search($esQuery); |
101 |
108 |
102 $themes = []; |
109 $themes = []; |
103 |
110 |
104 $bucketList = $esRes['aggregations']['subjects']['subjects']['buckets']; |
111 $bucketList = $esRes['aggregations']['subjects']['subjects']['buckets']; |
105 if($limit > 0) { |
112 if($limit > 0) { |