Elasticsearch: Datenbanken und Geschäftssysteme durchsuchen
Überblick
Webinar zur Einführung in Elasticsearch –
Elasticsearch bietet eine Reihe von Suchtechniken, angefangen bei BM25, dem Industriestandard für die textuelle Suche. Es bietet außerdem eine semantische Suche auf Basis von AI-Modellen und verbessert so die Ergebnisse basierend auf Kontext und Absicht.
In diesem Handbuch erfahren Sie, wie Sie Daten aus einer externen Datenbank mit Elasticsearch synchronisieren und die semantische Suche verwenden, um Ihre Datenbank einfach zu durchsuchen.
Onboarding der Daten
Ingestieren und Anreichern von Daten für die Suche
Elasticsearch bietet eine Vielzahl von Funktionen für die Dateningestion, mit denen Sie Ihre Geschäftsherausforderungen bewältigen können. Sehen Sie sich dieses Webinar an und erfahren Sie Folgendes:
- Zusammenführen verteilter Daten an einem zentralen Ort, um hochwertige Sucherlebnisse zu erstellen
- Erlernen Sie die Nutzung von Tools für Ihre spezifischen Datentypen, inklusive Open Crawler, Connector-Katalog, Daten- und ML-Inferenz-Pipelines und vieles mehr.
- Live-Demos mit unseren Kundensupport-Datensätzen
Elastic Cloud-Projekt erstellen
Starten Sie mit einer 14-tägigen Testversion. Nachdem Sie zu cloud.elastic.co gegangen sind und ein Konto erstellt haben, führen Sie die folgenden Schritte aus, um Ihr erstes Elasticsearch Serverless-Projekt zu starten.
Um zu beginnen, wählen Sie Elasticsearch.
Erstellen Sie ein Projekt für einen allgemeinen Zweck. Nennen Sie es „Mein Projekt“ und klicken Sie auf Projekt erstellen.
Ihr Elasticsearch Serverless-Projekt wird nun erstellt. Erstellen Sie als Nächstes Ihren ersten Elasticsearch-Index und nennen Sie ihn „my-index“. Klicken Sie auf Create my index.
Als Nächstes können Sie Datenquellen von Drittanbietern zu Elasticsearch hinzufügen. In diesem Beispiel haben wir eine MongoDB-Datenbank mit etwa 150.000 Videospieltiteln und den Spalten „id“, „name“, „description“ und „date“. Wir werden diese Datenbank mit Elasticsearch synchronisieren und in einem zusätzlichen Schritt semantische Suchfunktionen hinzufügen.
Lassen Sie uns ein grundlegendes Mapping mit denselben Feldnamen und dem zusätzlichen „description_semantic“ erstellen, das unsere Vektoren für die semantische Suche enthält. Öffnen Sie die Dev Tools und fügen Sie den folgenden Befehl ein, um Ihre Index-Mappings zu aktualisieren:
PUT my-index/_mappings
{
"properties": {
"name": {
"type": "text"
},
"description": {
"type": "text",
"copy_to": "description_semantic"
},
"description_semantic": {
"type": "semantic_text"
},
"date": {
"type": "date"
}
}
}
Daten aus einer vorhandenen Datenbank abrufen
Sie können nun eine Verbindung zu einer vorhandenen Datenbank herstellen. Klicken Sie auf Connectors und + Self-managed connector.
In diesem Handbuch wird eine MongoDB-Datenbank verwendet. Wählen Sie MongoDB aus der Connector-Typ-Liste aus.
Befolgen Sie die Anweisungen, um einen selbstgehosteten Connector mit Docker bereitzustellen. Sie müssen eine config.yml-Datei erstellen. Denken Sie daran, dass die api_key sowohl für connector als auch für elasticsearch gleich ist. Zum Beispiel:
connectors:
-
connector_id: KPIDOZUBfX6AM3jXM_g7
service_type: mongodb
api_key: RGZMUU9KVUJmWDZBTTNqWFRQano6R3RRb01jR2kxRkNqWTA5eGtSa3NFZw==
elasticsearch:
host: https://my-project-cc67ad.es.us-east-1.aws.elastic.cloud:443
api_key: RGZMUU9KVUJmWDZBTTNqWFRQano6R3RRb01jR2kxRkNqWTA5eGtSa3NFZw==
Starten Sie dann den selbst gehosteten Connector mit:
docker run -v "./connectors-config:/config" --tty --rm docker.elastic.co/enterprise-search/elastic-connectors:8.17.0 /app/bin/elastic-ingest -c /config/config.yml
Als nächstes fügen Sie die Konfiguration zu Ihrer MongoDB-Datenbank hinzu und klicken auf Weiter.
Wählen Sie den Index aus, mit dem die Daten synchronisiert werden müssen – in diesem Fall ist es „my-index“, der Index, den wir zuvor erstellt haben. Klicken Sie auf Synchronisieren.
Das wars! Der Connector durchsucht die Datenbank und synchronisiert Dokumente mit „my-index“. Auf der Connectors-Hauptseite wird der aktuelle Status angezeigt.
Konnektoren können auch so konfiguriert werden, dass die Datenbank regelmäßig mit Elasticsearch synchronisiert wird. Klicken Sie dazu auf den Connector und dann auf Zeitplanung, wählen Sie jede Stunde und klicken Sie auf Speichern. Nun wird der Inhalt zu jeder vollen Stunde synchronisiert, solange der selbstgehostete Connector aktiv ist.
Arbeiten mit Elasticsearch
Abfragen von Daten
Jetzt beginnt der spaßige Teil. Gehen Sie zu Build > Dev Tools (derselbe Bereich, den wir zur Aktualisierung der Index-Mappings verwendet haben) und geben Sie die folgende Abfrage ein, die eine Volltextsuche in den Feldern „name“ und „description“ durchführt:
GET my-index/_search
{
"query": {
"multi_match": {
"query": "adventure game on a desert island",
"fields": [
"name",
"description"
]
}
}
}
Da der Index jetzt über ein semantic_text-Feld verfügt, können Sie es folgendermaßen abfragen:
GET my-index/_search
{
"query": {
"semantic": {
"field": "description_semantic",
"query": "game about ghosts in medieval times"
}
}
}
Sie haben gerade gelernt, wie Sie Daten aus einer externen Datenbank mit Elasticsearch synchronisieren und darüber hinaus eine semantische Suche hinzufügen können!
Wie geht es weiter?
Vielen Dank, dass Sie sich die Zeit genommen haben, zu lernen, wie Sie Ihre erste Suchabfrage mit Python in Elastic Cloud erstellen. Für Ihre ersten Schritte mit Elastic sollten Sie einige Komponenten in Bezug auf Betrieb, Sicherheit und Daten kennen, die Sie verwalten sollten, wenn Sie als Benutzer in Ihrer Umgebung bereitstellen.
Bereit loszulegen? Starten Sie eine kostenlose 14-Tage-Testversion von Elastic Cloud oder probieren Sie diese 15-minütigen praktischen Übungen zu Search AI 101 aus.