Recherche globale

Qu'est-ce que la recherche globale ?

  • La recherche globale vous permet de rechercher partout sur le site Moodle auquel vous avez accès. Un étudiant peut rechercher des notes de cours particulières dans ses cours, par exemple, ou un enseignant peut rechercher des activités liées à une matière.
  • La fonction doit être activée par l'administrateur dans Fonctions avancées et ensuite, à partir de la page Gestion de la recherche globale, le moteur de recherche doit être sélectionné.

Lorsque la recherche globale est activée, une boîte de recherche est alors disponible à côté du menu utilisateur.

Recherche sur le site (lorsque la recherche globale est activée)

Que puis-je rechercher ?

Vous pouvez rechercher vos cours, des informations sur les activités et le contenu de certaines activités comme les messages du forum, les chapitres de livres, les données de glossaire ou les pages wikis collaboratives.

Le contenu des blocs HTML peut être recherché et, si l'administrateur définit le paramètre "Cours consultables" sur Rechercher dans tous les cours auxquels l'utilisateur peut accéder, les cours qui sont visibles pour les utilisateurs mais auxquels ils ne sont pas inscrits peuvent également être recherchés. (Ces cours sont des cours avec accès visiteur anonyme ou si l'utilisateur a la possibilité de voir tous les cours.)

Comment cela fonctionne-t-il ?

  • Cliquez sur l'icône de recherche dans le menu utilisateur et tapez un terme de recherche dans la case qui apparaît, ou tapez dans la case dans le Bloc Recherche globale si activé.
  • Sur l'écran suivant, vous pouvez simplement cliquer sur le bouton de recherche pour rechercher partout, ou développer le filtre pour rechercher dans des zones spécifiques :
Filtrage de la recherche
  • Vous verrez alors les résultats affichés dans toutes les zones de Moodle auxquelles vous avez accès :
Résultats de la recherche

Caractéristiques spécifiques à Solr

Ces fonctions ne sont disponibles que si vous utilisez Solr comme moteur de recherche.

Fonctions de recherche

Vous pouvez améliorer votre recherche à l'aide de l'une des fonctions de recherche suivantes :

  • Spécifier le champ à rechercher en préfixant la requête de recherche par "title :", "content :", "name :", "name :", ou "intro :" par exemple "title:news" renvoie les résultats avec le mot "news" dans le titre.
  • Opérateurs booléens ("AND", "OR", "NOT") pour combiner ou exclure des mots-clés.
  • Caractères génériques ("*" ou "?") pour représenter les caractères dans la requête de recherche.
  • Recherches de proximité ("~") par exemple mood~2 renvoie "moodle" (à 2 lettres de "mood"), Moodle Australia~3 renvoie des résultats contenant "Moodle HQ à Perth, Australie" (les termes recherchés étaient à 3 mots les uns des autres)
  • Booster des termes ("^") pour booster certains mots ou phrases par exemple "Perth Australia"^5 "Australia" retournera des résultats avec l'expression "Perth Australia" comme plus pertinente.

Indexation du contenu des fichiers

Solr a la capacité d'indexer le contenu des fichiers, tels que les ressources de fichiers et les pièces jointes aux messages du Forum.

Filtres supplémentaires

Nouveau dans 3.5 : De nouveaux champs facilitent désormais le filtrage par ID utilisateur et la recherche par groupe.

Comment est-il mis en place ?

Remarque : La recherche globale nécessite un moteur de recherche. Il est recommandé de tout configurer d'abord, d'indexer le contenu du site et seulement ensuite activer Recherche globale.

Le noyau de Moodle comprend deux moteurs de recherche : Recherche globale simple et Solr. Voir la Developer docs sur les plugins des moteurs de recherche si vous souhaitez écrire la vôtre.

Mise en place d'une recherche simple

La recherche globale simple offre des fonctions de recherche globale sans avoir besoin d'installer un moteur de recherche externe.

Recherche globale simple

Configuration de Solr

  • La dernière version disponible de Solr 5 est la version recommandée.
  • Moodle supporte le serveur Solr à partir de la version 4.0, bien que vous ne puissiez utiliser que le script de configuration de schéma Solr que nous fournissons avec Moodle à partir de Solr 5. La dernière version disponible de Solr 5 est la version recommandée ; il en sera de même pour Solr 6 dès sa sortie.

Configuration générale

  1. Configurez la fonctionnalité dans Administration du site > Plugins > Rechercher > Gestion de la recherche globale en sélectionnant Solr comme moteur de recherche et en cochant les cases de la zone de recherche si nécessaire.
  2. Dans Administration du site > Plugins > Rechercher > Solr, définissez Nom d'hôte sur localhost, Port sur 8983 et Nom d'index sur "moodle" (le nom de l'index dans Solr)
  3. Si vous utilisez Solr avec le cryptage SSL et l'authentification de base (voir ci-dessous si vous voulez utiliser des certificats clients à la place), vous devrez configurer ceci, ce qui est important si solr n'est pas installé sur le serveur web.
    1. Administration du site > Plugins > Recherche > Solr.
    2. Réglez Mode sécurisé sur Oui
    3. Définissez le numéro de port si nécessaire (parfois les installations SSL utilisent le port 443).
    4. Saisissez le nom d'utilisateur et le mot de passe.
  4. Si vous utilisez Solr avec le cryptage SSL via des certificats clients, vous devrez configurer Moodle comme tel. Ceci est important si solr n'est pas installé sur le serveur du serveur web.
    1. Vous aurez besoin d'un fichier de clés et d'un fichier cacert séparés, tous deux au format pem, situés sur votre serveur Moodle, et lisibles par le processus PHP.
    2. Administration du site > Plugins > Recherche > Solr.
    3. Réglez Mode sécurisé sur Oui
    4. "Certificat SSL" vers /path/to/certs/solr-ssl.cacert.cacert.pem
    5. Clé SSL vers /path/to/certs/solr-ssl.key.pem
    6. Mot de passe Clé SSL Mot de passe vers Le mot de passe utilisé pour verrouiller la clé SSL
    7. Nom des certificats SSL CA vers /path/to/certs/solr-ssl.cacert.pem
  5. Vous devez maintenant remplir l'index Solr créé avec les données de votre site. Vous pouvez le faire via l'interface web en allant dans Administration du site > Rapports > Info recherche globale ou depuis la CLI en exécutant le script search/cli/indexer.php. Le script CLI est l'option recommandée pour les grands sites.
    # sudo -u www-run php search/cli/indexer.php --force
    .
  6. Activer la recherche globale dans Administration du site > Fonctions avancées.

Indexation des fichiers

Solr a la capacité d'indexer le contenu des fichiers, tels que les ressources de fichiers et les pièces jointes aux messages du Forum. Ceci utilise le moteur Tika fourni avec Solr. Pour activer cette fonction :

  1. Dans Administration du site > Plugins > Recherche > Solr activer la case à cocher Activer l'indexation des fichiers.
  2. Réglez la taille maximale du fichier à indexer (kB) à une valeur, la valeur par défaut est 2097152 (2 Go).
    • Les fichiers supérieurs à cette limite ne seront pas envoyés à Solr pour l'indexation, mais le nom du fichier sera quand même indexé.

Nouveau dans 3.4 : L'indexation des fichiers fonctionne maintenant rétroactivement, c'est à dire que si vous configurez la recherche globale sans que l'indexation des fichiers soit activée et qu'une date ultérieure vous activez l'indexation des fichiers, les fichiers associés aux objets existants seront inclus.

Comment installer Solr

Vous devez installer l'extension PHP Solr. Vous pouvez télécharger les dernières versions officielles sur PECL : Paquetage : solr. La version minimale requise est PECL Solr 2.1 pour la branche PHP 5 et PECL Solr 2.4 pour la branche PHP 7.

Étapes d'installation de base (en utilisant le serveur web apache) :

Linux (Debian/Ubuntu)

Utilisation APT:

   sudo apt install php-solr
   sudo service apache2 restar

Si vous ne pouvez pas installer le module PHP SOLR via APT, essayez ce qui suit :

Avec PHP5.x

   sudo apt-get install libpcre3-dev libxml2-dev libcurl4-openssl-dev
   sudo apt-get install php5-dev
   sudo apt-get install php-pear
   sudo pecl install solr
   sudo sh -c "echo 'extension=solr.so' > /etc/php5/apache2/conf.d/solr.ini"
   sudo sh -c "echo 'extension=solr.so' > /etc/php5/cli/conf.d/solr.ini"
   sudo service apache2 restart

Avec PHP 7

   sudo apt-get install libpcre3-dev libxml2-dev libcurl4-openssl-dev
   sudo apt-get install php7.0-dev
   sudo apt-get install php-pear
   sudo pecl install solr
   sudo sh -c "echo 'extension=solr.so' > /etc/php/7.0/apache2/conf.d/solr.ini"
   sudo sh -c "echo 'extension=solr.so' > /etc/php/7.0/cli/conf.d/solr.ini"
   sudo service apache2 restart
Linux (Redhat/Centos 6 et 7)
Utilisation de paquetages php5 intégrés
 yum install php-pecl-solr2
 service httpd restart
Utilisation de paquetages php7 tiers (web-tactique)
 yum install libxml2-devel pcre-devel libcurl-devel php70w-devel php70w-pear
 pecl install solr
 echo "extension=solr.so" > /etc/php.d/solr.ini
 service httpd restart
OSX utilisant les macroports
   sudo port install apache-solr4
   sudo port install php54-solr
OSX utilisant homebrew
   brew install homebrew/php/php56-solr
Windows

Installez le paquetage pecl comme d'habitude. (Ceci n'a pas encore été testé.)

Le serveur Solr

Notez que pour les sites de taille moyenne/grande, vous pouvez avoir besoin d'augmenter le paramètre maxBooleanClauses. Dans [http://tracker.moodle.org/browse/MDL-54992 MDL-54992], nous travaillons sur un autre moyen d'interroger le serveur.

Veuillez noter qu'il y a un problème de sécurité qui affecte certaines versions de Solr. Les versions corrigées sont 5.5.5, 6.6.2, 7.1, 7.2 et toutes les nouvelles versions sont corrigées. Si la version de votre serveur Solr est inférieure mais que vous ne pouvez pas mettre à niveau vers l'une des versions corrigées, il est recommandé de désactiver l'analyseur de requêtes XML.

L'exemple suivant (n'hésitez pas à copier et coller dans un script.sh avec les permissions d'exécution) téléchargera Solr 5.5.5.5 (remplacez-le par la dernière version 5.x) dans le répertoire courant, démarrez le serveur solr et créez-y un index nommé moodle pour y ajouter les données moodle. Si wget donne une erreur, vérifiez http://www-us.apache.org/dist/lucene/solr et mettez à jour SOLRVERSION

   #!/bin/bash
   programmer -e
   SOLRVERSION=5.5.5
   SOLRNAME=solr-$SOLRVERSION
   SOLRTAR=$SOLRNAME'.tgz'
   INDEXNAME=moodle
   si [ -d $SOLRNAME ]; alors
       répercutions "Erreur : Le répertoire $SOLRNAME existe déjà, supprimez-le avant de redémarrer l'installation."
       sortie 1
   fi
   si [ ! -f $SOLRTAR ]; alors
       wget http://www-us.apache.org/dist/lucene/solr/$SOLRVERSION/$SOLRTAR
   fi
   tar -xvzf $SOLRTAR
   cd $SOLRNAME
   bin/solr start
   bin/solr create -c $INDEXNAME
   # Après l'avoir configuré et créé, utilisez l'index :
   # - "/yourdirectory/solrdir/bin/solr start" depuis CLI pour démarrer le serveur
   # - "/yourdirectory/solrdir/bin/solr stop" depuis CLI pour arrêter le serveur.
Configuration du schéma Solr 5/6

Moodle utilisera l'interface de schéma géré de Solr pour installer les champs requis. Vous serez dirigé sur ce qu'il faut faire à partir de la page Gestion de la recherche globale.

Pour les sites très grands ou très fréquentés, il est recommandé de supprimer manuellement le champ _text_, et la directive de copie associée, du schéma Solr par défaut. Ce champ n'est pas utilisé par Moodle, et ralentira considérablement l'indexation et augmentera la taille du noyau Solr résultant.

Configuration du schéma Solr 4

Vous ne pouvez pas utiliser le script de configuration de schéma lorsque vous utilisez un serveur Solr 4. Si vous voulez vraiment utiliser la branche Solr 4x, voici les descriptions des types de champs :

Extrait de search/classes/document.php

Nom du champ Type de champ Stocké Indexé Champ d'interrogation
id org.apache.solr.schema.StrField vrai faux faux
id de l'item org.apache.solr.schema.TrieIntField vrai vrai faux
titre org.apache.solr.schema.TextField vrai vrai vrai
contenu org.apache.solr.schema.TextField vrai vrai vrai
id du contexte org.apache.solr.schema.TrieIntField vrai vrai faux
id de la zone org.apache.solr.schema.StrField vrai vrai faux
type org.apache.solr.schema.TrieIntField vrai vrai faux
id du cours org.apache.solr.schema.TrieIntField vrai vrai faux
id utilisateur propriétaire org.apache.solr.schema.TrieIntField vrai vrai faux
modifé org.apache.solr.schema.TrieDateField vrai vrai faux
id utilisateur org.apache.solr.schema.TrieIntField vrai vrai faux
description 1 org.apache.solr.schema.TextField vrai vrai vrai
description 2 org.apache.solr.schema.TextField vrai vrai vrai
id de regroupement des fichier solr org.apache.solr.schema.StrField vrai vrai faux
id de fichier solr org.apache.solr.schema.StrField vrai vrai faux
hachage du contenu du fichier solr org.apache.solr.schema.StrField vrai vrai faux
état de l'index du fichier solr org.apache.solr.schema.TrieIntField vrai vrai faux
contenu du fichier solr org.apache.solr.schema.TextField faux vrai vrai
Considérations relatives à l'indexation de la mémoire et des fichiers

Pour les grands sites, et en particulier si vous utilisez la fonction d'indexation de fichiers, c'est une bonne idée de donner beaucoup de mémoire à Solr, par exemple entre 10 et 20 Go. Pour démarrer Solr avec plus de 512 Mo de RAM par défaut, utilisez l'option "-m" :

solr start -m 12g

Consultez les documents de votre version de Solr pour savoir comment augmenter la mémoire lorsque Solr est démarré automatiquement.

Trop d'erreurs de clauses booléennes

En raison de la façon dont Moodle gère les permissions de recherche, si vous avez des utilisateurs non-administrateurs ayant accès à un grand nombre d'activités (>1000), ils peuvent avoir une erreur similaire à ce qui suit :

   La requête que vous avez fournie n'a pas pu être analysée par le moteur de recherche : org.apache.solr.search.search.SyntaxError : Impossible d'analyser 
   ...
   trop de clauses booléennes

Pour corriger cela, vous devez augmenter le paramètre maxBooleanClauses dans votre noyau Solr. Le réglage est situé dans corename/conf/solrconfig.xml.

Cette note importante est incluse dans le fichier de configuration :

   ** AVERTISSEMENT **
   Cette option modifie en fait une propriété Lucene globale qui
   affectera tous les SolrCores. Si plusieurs fichiers solrconfig.xml sont présents
   ne sont pas d'accord sur cette propriété, la valeur à n'importe quel moment donné sera
   basée sur le dernier SolrCore à avoir été initialisé.
Commande pour l'installation de Solr Server sur Centos 7

Tout d'abord installez java (openjdk)

yum installer java-1.8.0-openjdk-openjdk

Ajouter un utilisateur pour solr

ajouter utilisateur solr

Télécharger le serveur solr, trouver les dernières mises à jour ici : http://lucene.apache.org/solr/mirrors-solr-latest-redir.html, à partir de la liste, télécharger les dernières mises à jour solr-[version].tgz

Voici la liste des commandes nécessaires (notez que la dernière commande solr est suggérée, changez la commande en version appropriée)

cd /opt
wget http://www-eu.apache.org/dist/lucene/solr/6.6.0/solr-6.6.0.tgz
tar zxvf solr-6.6.0.tgz
cp solr-6.6.0/bin/install_solr_service.sh .
rm -rf solr-6.6.0
./install_solr_service.sh solr-6.6.0.tgz
chkconfig solr on

Créer l'index

su - solr -c "/opt/solr/bin/solr create_core -c moodle"

Allez ensuite dans votre Moodle et définissez le nom de l'index comme créé (moodle)

Voir aussi

Forum de discussions:


Une introduction rapide à la recherche globale de Moodle, suivie d'une description des nouvelles fonctionnalités et corrections de Moodle 3.4 (et certaines de celles de Moodle 3.5).