server/src/app/Repositories/RdfDocumentRepository.php
changeset 376 02f113d43f18
parent 372 796ebdbf6a25
child 378 5b47eab083f3
equal deleted inserted replaced
375:145561ff51ff 376:02f113d43f18
   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,