Installer et utiliser Elasticsearch avec MongoDB sur Windows et Ubuntu
- Qu’est-ce qu’Elasticsearch
- Installer Elasticsearch sur Windows 10
- Installer Elasticsearch sur Ubuntu 20.04
- la principale raison d’utiliser Elasticsearch avec MongoDB
Cet article est un guide d’installation et de configuration étape par étape pour Elasticsearch sur Windows et Ubuntu 20.04. Il démontre également l’utilisation d’Elasticsearch avec MongoDB pour les deux systèmes d’exploitation.
Qu’est-ce qu’Elasticsearch
Elasticsearch est une base de données NoSQL, un moteur distribué et d’analyse en temps réel open source conçu pour stocker les journaux. L’Elasticsearch est développé en programmation Java et au-dessus d’un Apache Lucene.
De nombreuses entreprises bien connues, dont LinkedIn et OpenStack, l’utilisent. Il prend en charge la recherche en texte intégral basée sur les documents au lieu des schémas et des tables.
Il est également utilisé pour la migration, l’indexation et la synchronisation des données. Elasticsearch est le meilleur choix lorsque l’application nécessite trop d’opérations de recherche et de filtres.
Installer Elasticsearch sur Windows 10
Étape 1 : Vérifiez si Java est installé
Pour installer Elasticsearch sur Windows 10, nous devons avoir la dernière version de Java installée sur notre machine. Vous pouvez également utiliser l’une des commandes suivantes pour confirmer que Java est déjà installé sur votre machine.
N’oubliez pas que nous devons avoir Java version 7 ou supérieure si nous voulons installer Elasticsearch.
Étape 2 : Télécharger le fichier Elasticsearch .zip
Allez sur ce site Web et cliquez sur le lien de téléchargement dans la capture d’écran suivante. Ensuite, sélectionnez la plate-forme que nous voulons utiliser Elasticsearch et téléchargez le fichier .zip
.
Étape 3 : Exécutez le fichier de commandes Elasticsearch
Une fois que nous avons téléchargé le fichier .zip
, décompressez-le à l’emplacement souhaité. Ensuite, naviguez jusqu’au dossier bin
et double-cliquez sur le fichier batch elasticsearch
.
Ce n’est rien d’autre qu’un fichier de commandes Windows standard avec des étapes effectuées en coulisses. De plus, cela aide à faire apparaître le démon Elasticsearch sur votre machine qui se présentera comme suit.
Laissez-le ouvert et suivez les étapes suivantes.
Étape 4 : Désactiver l’authentification (uniquement à des fins d’apprentissage)
Par défaut, l’authentification est activée, ce qui signifie que nous devons saisir les informations de connexion. Vous pouvez soit utiliser les identifiants de connexion par défaut, soit les modifier en suivant cette page.
Pour cet article, nous désactivons l’authentification (c’est uniquement à des fins d’apprentissage mais recommandé dans l’environnement de production). Nous utilisons le Bloc-notes pour ouvrir le fichier elasticsearch.yml
qui peut être situé dans le chemin %ES_HOME%\config\elasticsearch.yml
.
Ici, ES_HOME
est votre répertoire d’accueil Elasticsearch. Par exemple, dans notre cas, le elasticsearch.yml
peut être situé dans C:\Users\DelftStack\Desktop\elasticsearch-8.2.2-windows-x86_64\elasticsearch-8.2.2\config
.
Une fois le fichier elasticsearch.yml
ouvert, recherchez l’option xpack.security.enabled
et mettez sa valeur false
, comme indiqué dans la capture d’écran ci-dessous.
Arrêtez Elasticsearch et recommencez en exécutant le fichier elasticsearch.bat
.
Étape 5 : Exécutez Elasticsearch sur le navigateur
Tapez http://localhost:9200
sur votre navigateur préféré. Si vous voyez la page similaire à la capture d’écran suivante, Elasticsearch est correctement opérationnel.
Installer Elasticsearch sur Ubuntu 20.04
Étape 1 : Installer les dépendances requises
Index des packages de mise à jour/mise à niveau :
sudo apt update
sudo apt upgrade
Comme Windows OS, Java est également requis sur Ubuntu pour installer Elasticsearch. S’il n’est pas déjà installé, exécutez la commande ci-dessous pour installer le JDK par défaut sur Ubuntu 20.04.
sudo apt install openjdk-8-jdk
Une fois installé, utilisez la version java
pour vérifier si elle est là.
Nous devons également installer un package APT Transport
pour donner accès à tous nos dépôts via HTTPS
.
sudo apt install apt-transport-https
Étape 2 : Téléchargez et installez Elasticsearch sur Ubuntu
La tâche suivante consiste à ajouter le référentiel Elasticsearch. Utilisez la requête wget
pour extraire la clé publique.
Vous devez avoir le OK
en sortie si tout se passe bien.
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
Maintenant, ajoutez le référentiel au système en exécutant la commande suivante. Nous écrivons le 8.x
dans la commande suivante car il s’agit de la dernière version au moment de la rédaction de ce tutoriel.
echo "deb https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-8.x.list
Encore une fois, mettez à jour l’index du package à l’aide de la commande ci-dessous.
sudo apt update
Installez Elasticsearch en exécutant la commande suivante. L’installation peut prendre un certain temps.
Alors, laissez-le se terminer avec succès.
sudo apt install elasticsearch
Après l’installation, nous devons démarrer l’Elasticsearch car il ne démarre pas tout seul. Nous devons également relancer Elasticsearch si nous redémarrons la machine.
Pour éviter cette situation, exécutez les commandes ci-dessous pour recharger automatiquement Elasticsearch après le redémarrage du système.
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch.service
sudo systemctl start elasticsearch.service
Maintenant, vérifiez l’état d’Elasticsearch en utilisant la commande suivante.
sudo systemctl status elasticsearch
Étape 3 : Configurer Elasticsearch
Par défaut, Elasticsearch est préconfiguré pour une utilisation de base. Nous n’avons pas à apporter de modifications au fichier de configuration si nous voulons utiliser un nœud dans notre configuration.
Si vous souhaitez modifier la configuration d’Elasticsearch, modifiez le fichier elasticsearch.yml
dans le répertoire /etc/elasticsearch
. Vous pouvez également trouver la configuration pour la journalisation dans /var/log/elasticsearch/logging.yml
.
Nous éditons le fichier elasticsearch.yml
pour désactiver l’authentification pour ce tutoriel. Nous changeons la valeur de xpack.security.enabled
de true
à false
.
N’oubliez pas que chaque fois que vous modifiez le fichier elasticsearch.yml
, n’oubliez pas de redémarrer les services à l’aide de la commande suivante.
sudo systemctl restart elasticsearch.service
Ensuite, utilisez la commande suivante pour vérifier si Elasticsearch est opérationnel.
curl localhost:9200
Nous pouvons également taper http://localhost:9200
sur le navigateur, et cela devrait afficher les mêmes résultats que la commande curl
donnée ci-dessus. De plus, vous pouvez consulter cet article pour sécuriser Elasticsearch.
la principale raison d’utiliser Elasticsearch avec MongoDB
Nous utilisons MongoDB pour stocker et interroger les données, tandis qu’Elasticsearch est utilisé pour l’indexation en texte intégral sur les données. Par conséquent, la combinaison des deux (Elasticsearch pour l’indexation et MongoDB pour le stockage) est l’une des architectures communes que de nombreuses entreprises suivent.
Elasticsearch est développé à des fins de recherche et fournit également des fonctionnalités avancées pour l’indexation des données. Il fonctionne aux côtés de Kibana
et Logstash
pour l’analyse des données.
L’un des avantages de l’utilisation d’Elasticsearch est qu’il permet une recherche rapide de tous les champs du document spécifié. Nous pouvons considérer cela comme une recherche Google personnelle de nos données.
Nous pouvons également utiliser Elasticsearch dans différents scénarios. Par exemple, nous pouvons effectuer une synchronisation, créer un moteur de recherche, migration de données, indexation, etc.
Nous apprendrons à utiliser Elasticsearch avec MongoDB à des fins de synchronisation pour ce tutoriel.
Utiliser Elasticsearch pour effectuer la synchronisation
Nous devons suivre les étapes ci-dessous pour effectuer la synchronisation à l’aide d’Elasticsearch et de MongoDB sous Windows/Ubuntu. Avant cela, assurez-vous d’avoir toutes les dépendances.
Par exemple, nous utilisons Node.js
pour cet exemple de code. De plus, continuez à exécuter les deux moteurs de base de données (MongoDB et Elasticsearch).
Après cela, suivons les étapes.
-
Importez les packages
mongoose
etmongoosastic
. -
Établissez une connexion réussie avec le moteur MongoDB.
-
Créez un schéma MongoDB.
-
Utilisez le plugin
mongoosastic
pour vous connecter à Elasticsearch. -
Commencez par créer le modèle MongoDB, puis le mappage Elasticsearch.
-
Ajoutez des données à votre base de données MongoDB, et elles doivent être synchronisées avec Elasticsearch.
Exemple de code (mettez tout le code dans un fichier, nous l’avons dans le fichier app.js
) :
// Step 1:
const mongoose = require('mongoose');
const mongoosastic = require('mongoosastic');
// Step 2:
mongoose.connect('mongodb://localhost:27017/studentdb');
// Step 3:
var StudentSchema =
new mongoose.Schema({firstname: String, lastname: String, city: String});
// Step 4:
StudentSchema.plugin(mongoosastic, {'host': 'localhost', 'port': 9200});
// Step 5:
var Student = mongoose.model('student', StudentSchema);
Student.createMapping((err, mapping) => {
console.log('mapping created');
});
// Step 6:
var newStudent =
new Student({firstname: 'Mehvish', lastname: 'Ashiq', city: 'Lahore'});
newStudent.save((err) => {
if (err) {
console.log(err);
}
console.log('Student is added in both databases');
})
newStudent.on('es-indexed', (err, result) => {
console.log('indexed to elastic search');
});
Maintenant, exécutez ce code ; ce serait comme suit.
Confirmez l’entrée dans MongoDB comme suit.
Ensuite, ouvrez http://localhost:9200/students/_search
pour le confirmer également sur Elasticsearch. Cela ressemblera à la capture d’écran suivante.