Installation de Elasticsearch (pour la recherche)

Zeste de Savoir utilise Elasticsearch 5, un moteur de recherche très performant. Installer Elasticsearch est nécessaire pour faire fonctionner la recherche.

Installation

Attention

Par défaut, Elasticsearch requiert au moins 2 Gio de mémoire pour démarrer.

Si vous ne souhaitez pas utiliser autant de mémoire, modifiez le fichier config/jvm.option, en particuliez les options -Xms et -Xmx. Par exemple, vous pouvez passer la valeur de ces variables à 512 Mio grâce à:

-Xms512m
-Xmx512m

Plus d’informations sont disponibles dans la documentation officielle.

Sous Linux

Installer java 8

Il est nécessaire d’utiliser au moins la version 8 de Java pour faire tourner Elasticsearch, mais ce n’est probablement pas la version par défaut de votre système d’exploitation.

Sous Debian et dérivés, le package à installer est openjdk-8-jdk :

  • Sous Ubuntu (et dérivés), s’il n’est pas disponible pour votre système, ajoutez le PPA suivant : add-apt-repository ppa:openjdk-r/ppa (en root).

  • Sous Debian, il est disponible dans le dépôt jessie-backports (ajoutez deb http://ftp.fr.debian.org/debian jessie-backports main dans /etc/apt/sources.list).

Une fois installé, passez sur la version 8 de java à l’aide de update-alternatives --config java (en root).

Sous Fedora et dérivés (CentOS, OpenSuse, …), le paquet à installer est java-1.8.0-openjdk. Passez ensuite à la version 8 de java à l’aide de la commande alternatives --config java (en root).

Installer Elasticsearch

La procédure d’installation, si vous souhaitez utiliser Elasticsearch sans l’installer via le gestionnaire de paquets de votre distribution, est d’entrer les commandes suivantes dans votre shell préféré. Remplacez X.Y.Z par la version spécifiée dans requirements.txt !

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-X.Y.Z.zip
unzip elasticsearch-X.Y.Z.zip
cd elasticsearch-X.Y.Z/

Pour démarrer Elasticsearch, utilisez

./bin/elasticsearch

Vous pouvez arrêter Elasticsearch grâce à CTRL+C.

Note

Vous pouvez également installer Elasticsearch comme daemon de votre système. Rendez-vous sur la page d’installation d’Elasticsearch pour plus d’informations

Sous macOS

Utilisez les commandes suivantes pour installer Java 8 et Elasticsearch:

brew update
brew cask install java
brew install elasticsearch

Pour démarrer Elasticsearch, utilisez la commande suivante:

elasticsearch --config=/usr/local/opt/elasticsearch/config/elasticsearch.yml

Note

Vous pouvez également le démarrer comme daemon, comme sous Linux. Plus d’infos ici.

Sous Windows

Elasticsearch requiert la version 8 de Java, que vous pouvez trouver sur la page officielle de java. Prenez la version correspondante à votre système d’exploitation.

Pour télécharger Elasticsearch :

  • rendez-vous à l’adresse suivante : https://www.elastic.co/fr/downloads/past-releases#elasticsearch ;

  • choisissez la version spécifiée dans le fichier requirements.txt (désignée ci-après par X.Y.Z);

  • téléchargez la version Windows ;

  • extrayez le dossier elasticsearch-X.Y.Z du zip à l’aide de votre outil préféré.

Pour démarer Elasticsearch, ouvrez un shell (ou un powershell) et rendez-vous dans le dossier elasticsearch-X.Y.Z. Exécutez ensuite la commande suivante :

bin\elasticsearch

Vous pouvez arrêter Elasticsearch grâce à CTRL+C, puis en répondant « o » lorsqu’il vous est demandé Terminer le programme de commandes (O/N) ?.

Note

Vous pouvez également le démarrer comme daemon, comme sous Linux. Plus d’informations dans la documentation.

Indexation et recherche

Pour tester que tout fonctionne, quand Elasticsearch est démarré, rendez-vous sur la page http://localhost:9200/. Vous devriez observer une réponse du même genre que celle-ci :

{
  "name" : "p0bcxqN",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "649S5bMUQOyRzYmQFVPA1A",
  "version" : {
    "number" : "X.Y.Z",
    "build_hash" : "19c13d0",
    "build_date" : "2017-07-18T20:44:24.823Z",
    "build_snapshot" : false,
    "lucene_version" : "6.6.0"
  },
  "tagline" : "You Know, for Search"
}

Si ce n’est pas le cas, vérifiez que vous avez démarré Elasticsearch.

Si c’est le cas, vous pouvez indexer les données à l’aide de la commande es_manager, comme suit :

python manage.py es_manager index_all

Une fois que c’est fait, en vous rendant sur la page de recherche, http://localhost:8000/rechercher/, vous devriez être capable d’utiliser la recherche. En particulier, vous ne devriez pas observer de message d’erreur :

../_images/no-connection.png

Si Elasticsearch n’est pas démarré, le message suivant apparait.

Pour réindexer les nouvelles données, utilisez la commande suivante :

python manage.py es_manager index_flagged

Plus d’informations sur la commande es_manager sont disponibles sur la page concernant la recherche sur ZdS.