150 if(array_key_exists('language', $filters) && !empty($filters['language'])) { |
150 if(array_key_exists('language', $filters) && !empty($filters['language'])) { |
151 $languages = $filters['language']; |
151 $languages = $filters['language']; |
152 if(is_string($languages)) { |
152 if(is_string($languages)) { |
153 $languages = [ $languages, ]; |
153 $languages = [ $languages, ]; |
154 } |
154 } |
155 $qFilterParts[] = CorpusFilterManager::getLanguagesFilterPart($languages); |
155 $languages = array_slice($languages, config('corpusparole.filter_max_languages_nb', 200)); |
|
156 $fp = CorpusFilterManager::getLanguagesFilterPart($languages); |
|
157 if(!empty($fp)) { |
|
158 $qFilterParts[] = $fp; |
|
159 } |
156 } |
160 } |
157 if(array_key_exists('location', $filters) && !empty($filters['location'])) { |
161 if(array_key_exists('location', $filters) && !empty($filters['location'])) { |
158 $location = $filters['location']; |
162 $location = $filters['location']; |
159 if(is_array($location)) { |
163 if(is_array($location)) { |
160 $location = $location[0]; // we know it is not empty |
164 $location = $location[0]; // we know it is not empty |
161 } |
165 } |
162 $qFilterParts[] = CorpusFilterManager::getLocationFilterPart($location); |
166 $fp = CorpusFilterManager::getLocationFilterPart($location); |
|
167 if(!empty($fp)) { |
|
168 $qFilterParts[] = $fp; |
|
169 } |
|
170 |
163 } |
171 } |
164 if(array_key_exists('themes', $filters) && !empty($filters['themes'])) { |
172 if(array_key_exists('themes', $filters) && !empty($filters['themes'])) { |
165 $themes = $filters['themes']; |
173 $themes = $filters['themes']; |
166 if(is_string($themes)) { |
174 if(is_string($themes)) { |
167 $themes = [$themes,]; // we know it is not empty |
175 $themes = [$themes,]; // we know it is not empty |
168 } |
176 } |
169 $qFilterParts[] = CorpusFilterManager::getThemeFilterPart($themes); |
177 $fp = CorpusFilterManager::getThemeFilterPart($themes); |
|
178 if(!empty($fp)) { |
|
179 $qFilterParts[] = $fp; |
|
180 } |
|
181 |
170 } |
182 } |
171 if(array_key_exists('discourses', $filters) && !empty($filters['discourses'])) { |
183 if(array_key_exists('discourses', $filters) && !empty($filters['discourses'])) { |
172 $discourses = $filters['discourses']; |
184 $discourses = $filters['discourses']; |
173 if(is_string($discourses)) { |
185 if(is_string($discourses)) { |
174 $discourses = [$discourses,]; // we know it is not empty |
186 $discourses = [$discourses,]; // we know it is not empty |
175 } |
187 } |
176 $qFilterParts[] = CorpusFilterManager::getDiscourseFilterPart($discourses); |
188 $fp = CorpusFilterManager::getDiscourseFilterPart($discourses); |
177 } |
189 if(!empty($fp)) { |
178 |
190 $qFilterParts[] = $fp; |
179 Log::debug("queries : ".print_r($qFilterParts, true)); |
191 } |
|
192 |
|
193 } |
|
194 if(array_key_exists('dates', $filters) && !empty($filters['dates'])) { |
|
195 $dates = $filters['dates']; |
|
196 if(is_string($dates)) { |
|
197 $dates = [$dates,]; // we know it is not empty |
|
198 } |
|
199 $fp = CorpusFilterManager::getDateFilterPart($dates); |
|
200 if(!empty($fp)) { |
|
201 $qFilterParts[] = $fp; |
|
202 } |
|
203 } |
|
204 |
180 |
205 |
181 $query = [ |
206 $query = [ |
182 'index' => config('corpusparole.elasticsearch_index'), |
207 'index' => config('corpusparole.elasticsearch_index'), |
183 'body' => [ |
208 'body' => [ |
184 "size" => empty($limit)?0:$limit, |
209 "size" => empty($limit)?0:$limit, |