diff -r 145561ff51ff -r 02f113d43f18 server/src/app/Repositories/RdfDocumentRepository.php --- 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'),