server/src/app/Repositories/RdfDocumentRepository.php
changeset 376 02f113d43f18
parent 372 796ebdbf6a25
child 378 5b47eab083f3
--- a/server/src/app/Repositories/RdfDocumentRepository.php	Thu Oct 20 11:24:45 2016 +0200
+++ b/server/src/app/Repositories/RdfDocumentRepository.php	Thu Oct 20 15:09:31 2016 +0200
@@ -152,31 +152,56 @@
             if(is_string($languages)) {
                 $languages = [ $languages, ];
             }
-            $qFilterParts[] = CorpusFilterManager::getLanguagesFilterPart($languages);
+            $languages = array_slice($languages, config('corpusparole.filter_max_languages_nb', 200));
+            $fp = CorpusFilterManager::getLanguagesFilterPart($languages);
+            if(!empty($fp)) {
+                $qFilterParts[] = $fp;
+            }
         }
         if(array_key_exists('location', $filters) && !empty($filters['location'])) {
             $location = $filters['location'];
             if(is_array($location)) {
                 $location = $location[0]; // we know it is not empty
             }
-            $qFilterParts[] = CorpusFilterManager::getLocationFilterPart($location);
+            $fp = CorpusFilterManager::getLocationFilterPart($location);
+            if(!empty($fp)) {
+                $qFilterParts[] = $fp;
+            }
+
         }
         if(array_key_exists('themes', $filters) && !empty($filters['themes'])) {
             $themes = $filters['themes'];
             if(is_string($themes)) {
                 $themes = [$themes,]; // we know it is not empty
             }
-            $qFilterParts[] = CorpusFilterManager::getThemeFilterPart($themes);
+            $fp = CorpusFilterManager::getThemeFilterPart($themes);
+            if(!empty($fp)) {
+                $qFilterParts[] = $fp;
+            }
+
         }
         if(array_key_exists('discourses', $filters) && !empty($filters['discourses'])) {
             $discourses = $filters['discourses'];
             if(is_string($discourses)) {
                 $discourses = [$discourses,]; // we know it is not empty
             }
-            $qFilterParts[] = CorpusFilterManager::getDiscourseFilterPart($discourses);
+            $fp = CorpusFilterManager::getDiscourseFilterPart($discourses);
+            if(!empty($fp)) {
+                $qFilterParts[] = $fp;
+            }
+
+        }
+        if(array_key_exists('dates', $filters) && !empty($filters['dates'])) {
+            $dates = $filters['dates'];
+            if(is_string($dates)) {
+                $dates = [$dates,]; // we know it is not empty
+            }
+            $fp = CorpusFilterManager::getDateFilterPart($dates);
+            if(!empty($fp)) {
+                $qFilterParts[] = $fp;
+            }
         }
 
-        Log::debug("queries : ".print_r($qFilterParts, true));
 
         $query = [
             'index' => config('corpusparole.elasticsearch_index'),