Installation und Verwendung von Elasticsearch mit MongoDB unter Windows und Ubuntu
- Was ist die Elasticsearch
- Installieren Sie Elasticsearch unter Windows 10
- Installieren Sie Elasticsearch auf Ubuntu 20.04
- der Hauptgrund für die Verwendung von Elasticsearch mit MongoDB
Dieser Artikel ist eine Schritt-für-Schritt-Anleitung zur Installation und Konfiguration von Elasticsearch unter Windows und Ubuntu 20.04. Außerdem wird die Verwendung von Elasticsearch mit MongoDB für beide Betriebssysteme demonstriert.
Was ist die Elasticsearch
Elasticsearch ist eine NoSQL-Datenbank, eine verteilte Open-Source-Echtzeit-Analyse-Engine zum Speichern von Protokollen. Die Elasticsearch wird in Java-Programmierung und auf Apache Lucene entwickelt.
Viele namhafte Unternehmen, darunter LinkedIn und OpenStack, verwenden es. Es unterstützt die Volltextsuche basierend auf den Dokumenten anstelle von Schemas und Tabellen.
Es wird auch für die Datenmigration, Indizierung und Synchronisierung verwendet. Elasticsearch ist die beste Wahl, wenn die Anwendung zu viele Suchvorgänge und Filter benötigt.
Installieren Sie Elasticsearch unter Windows 10
Schritt 1: Überprüfen Sie, ob Java installiert ist
Um Elasticsearch unter Windows 10 zu installieren, muss die neueste Version von Java auf unserem Computer installiert sein. Sie können auch einen der folgenden Befehle verwenden, um zu bestätigen, dass Java bereits auf Ihrem Computer installiert ist.
Denken Sie daran, dass wir Java Version 7 oder höher haben müssen, wenn wir Elasticsearch installieren möchten.
Schritt 2: Laden Sie die Elasticsearch .zip
-Datei herunter
Gehen Sie zu dieser Website und klicken Sie auf den Download-Link im folgenden Screenshot. Wählen Sie als Nächstes die Plattform aus, auf der wir Elasticsearch verwenden möchten, und laden Sie die .zip
-Datei herunter.
Schritt 3: Führen Sie die Elasticsearch-Batch-datei aus
Sobald wir die .zip
-Datei heruntergeladen haben, entpacken Sie diese an den gewünschten Ort. Navigieren Sie dann zum Ordner bin
und doppelklicken Sie auf die Batch-Datei elasticsearch
.
Es ist nichts anderes als eine Standard-Windows-Batch-datei mit Schritten, die hinter den Kulissen ausgeführt werden. Darüber hinaus hilft es, den Elasticsearch-Daemon auf Ihrem Computer aufzurufen, der wie folgt aussieht.
Lassen Sie das offen und folgen Sie den nächsten Schritten.
Schritt 4: Authentifizierung deaktivieren (nur zu Lernzwecken)
Standardmäßig ist die Authentifizierung aktiviert, was bedeutet, dass wir die Anmeldeinformationen eingeben müssen. Sie können entweder die Standard-Anmeldeinformationen verwenden oder sie ändern, indem Sie dieser Seite folgen.
Für diesen Artikel deaktivieren wir die Authentifizierung (sie dient nur zu Lernzwecken, wird jedoch in der Produktionsumgebung empfohlen). Wir verwenden Notepad, um die Datei elasticsearch.yml
zu öffnen, die sich im Pfad %ES_HOME%\config\elasticsearch.yml
befindet.
Hier ist ES_HOME
Ihr Elasticsearch-Home-Verzeichnis. In unserem Fall kann die elasticsearch.yml
beispielsweise unter C:\Users\DelftStack\Desktop\elasticsearch-8.2.2-windows-x86_64\elasticsearch-8.2.2\config
liegen.
Sobald die Datei elasticsearch.yml
geöffnet ist, suchen Sie nach der Option xpack.security.enabled
und setzen Sie ihren Wert auf false
, wie im folgenden Screenshot gezeigt.
Stoppen Sie die Elasticsearch und starten Sie sie erneut, indem Sie die Datei elasticsearch.bat
ausführen.
Schritt 5: Führen Sie Elasticsearch im Browser aus
Geben Sie http://localhost:9200
in Ihrem bevorzugten Browser ein. Wenn Sie eine Seite ähnlich dem folgenden Screenshot sehen, wurde Elasticsearch erfolgreich eingerichtet und ausgeführt.
Installieren Sie Elasticsearch auf Ubuntu 20.04
Schritt 1: Installieren Sie die erforderlichen Abhängigkeiten
Update-/Upgrade-Paket-Index:
sudo apt update
sudo apt upgrade
Wie das Windows-Betriebssystem wird auch auf Ubuntu Java für die Installation von Elasticsearch benötigt. Wenn es noch nicht installiert ist, führen Sie den folgenden Befehl aus, um das Standard-JDK zu installieren unter Ubuntu 20.04.
sudo apt install openjdk-8-jdk
Verwenden Sie nach der Installation die java -version
, um zu überprüfen, ob sie vorhanden ist.
Wir müssen auch ein APT Transport
-Paket installieren, um den Zugriff auf alle unsere Repositories über HTTPS
zu ermöglichen.
sudo apt install apt-transport-https
Schritt 2: Laden Sie Elasticsearch auf Ubuntu herunter und installieren Sie es
Der nächste Job besteht darin, das Elasticsearch-Repository hinzuzufügen. Verwenden Sie die Abfrage wget
, um den öffentlichen Schlüssel abzurufen.
Sie müssen das OK
als Ausgabe haben, wenn alles gut geht.
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
Fügen Sie nun das Repository zum System hinzu, indem Sie den folgenden Befehl ausführen. Wir schreiben 8.x
in den folgenden Befehl, da dies die neueste Version zum Zeitpunkt des Schreibens dieses Tutorials ist.
echo "deb https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-8.x.list
Aktualisieren Sie den Paketindex erneut mit dem unten angegebenen Befehl.
sudo apt update
Installieren Sie Elasticsearch, indem Sie den folgenden Befehl ausführen. Die Installation kann einige Zeit dauern.
Lassen Sie es also erfolgreich abschließen.
sudo apt install elasticsearch
Nach der Installation müssen wir die Elasticsearch starten, da sie nicht von selbst startet. Wir müssen die Elasticsearch auch erneut ausführen, wenn wir die Maschine neu starten.
Um diese Situation zu vermeiden, führen Sie die folgenden Befehle aus, um Elasticsearch nach dem Systemneustart automatisch neu zu laden.
sudo systemctl daemon-reload
sudo systemctl enable elasticsearch.service
sudo systemctl start elasticsearch.service
Überprüfen Sie nun den Status von Elasticsearch mit dem folgenden Befehl.
sudo systemctl status elasticsearch
Schritt 3: Konfigurieren Sie Elasticsearch
Standardmäßig ist Elasticsearch für die grundlegende Verwendung vorkonfiguriert. Wir müssen keine Änderungen in der Konfigurationsdatei vornehmen, wenn wir einen Knoten in unserem Setup verwenden möchten.
Wenn Sie die Elasticsearch-Konfiguration bearbeiten möchten, bearbeiten Sie die Datei elasticsearch.yml
im Verzeichnis /etc/elasticsearch
. Die Konfiguration für das Logging finden Sie auch unter /var/log/elasticsearch/logging.yml
.
Wir bearbeiten die Datei elasticsearch.yml
, um die Authentifizierung für dieses Tutorial zu deaktivieren. Wir ändern den Wert von xpack.security.enabled
von true
auf false
.
Denken Sie daran, wann immer Sie die Datei elasticsearch.yml
bearbeiten, vergessen Sie nicht, die Dienste mit dem folgenden Befehl neu zu starten.
sudo systemctl restart elasticsearch.service
Verwenden Sie als Nächstes den folgenden Befehl, um zu überprüfen, ob Elasticsearch betriebsbereit ist.
curl localhost:9200
Wir können auch http://localhost:9200
in den Browser eingeben, und es sollte die gleichen Ergebnisse wie der oben angegebene curl
-Befehl zeigen. Außerdem können Sie diesen Artikel lesen, um Elasticsearch zu sichern.
der Hauptgrund für die Verwendung von Elasticsearch mit MongoDB
Wir verwenden MongoDB zum Speichern und Abfragen der Daten, während Elasticsearch für die Volltextindizierung der Daten verwendet wird. Daher ist die Kombination aus beidem (Elasticsearch zum Indizieren und MongoDB zum Speichern) eine der gängigen Architekturen, denen viele Unternehmen folgen.
Elasticsearch wurde für Suchzwecke entwickelt und bietet auch erweiterte Funktionen für die Datenindizierung. Es arbeitet neben Kibana
und Logstash
für die Datenanalyse.
Einer der Vorteile der Verwendung von Elasticsearch besteht darin, dass es eine schnelle Suche nach allen Feldern innerhalb des angegebenen Dokuments ermöglicht. Wir können uns das so vorstellen, als hätten wir unsere persönliche Google-Suche nach unseren Daten.
Wir können die Elasticsearch auch in verschiedenen Szenarien verwenden. Beispielsweise können wir eine Synchronisierung durchführen, eine Suchmaschine erstellen, Datenmigration, Indizierung durchführen und vieles mehr.
Wir werden lernen, Elasticsearch mit MongoDB für Synchronisierungszwecke für dieses Tutorial zu verwenden.
Verwendung von Elasticsearch zum Durchführen der Synchronisierung
Wir müssen die unten angegebenen Schritte ausführen, um die Synchronisierung mit Elasticsearch und MongoDB unter Windows/Ubuntu durchzuführen. Stellen Sie vorher sicher, dass Sie alle Abhängigkeiten haben.
Für dieses Codebeispiel verwenden wir beispielsweise Node.js
. Führen Sie außerdem beide Datenbank-Engines (MongoDB und Elasticsearch) weiter aus.
Danach folgen wir den Schritten.
-
Importieren Sie die Pakete
mongoose
undmongoosastic
. -
Stellen Sie eine erfolgreiche Verbindung mit der MongoDB-Engine her.
-
Erstellen Sie ein MongoDB-Schema.
-
Verwenden Sie das Plugin
mongoosastic
, um sich mit Elasticsearch zu verbinden. -
Erstellen Sie zuerst das MongoDB-Modell und dann die Elasticsearch-Zuordnung.
-
Fügen Sie Ihrer MongoDB-Datenbank Daten hinzu, die mit Elasticsearch synchronisiert werden müssen.
Beispielcode (fügen Sie den gesamten Code in eine Datei ein, wir haben ihn in der Datei 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');
});
Führen Sie nun diesen Code aus; es wäre wie folgt.
Bestätigen Sie den Eintrag in MongoDB wie folgt.
Als nächstes öffnen Sie http://localhost:9200/students/_search
, um es auch auf Elasticsearch zu bestätigen. Es sieht ähnlich aus wie im folgenden Screenshot.