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

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.

screenshot-01-which-type-project-like-to-create.png

Erstellen Sie ein Projekt für einen allgemeinen Zweck. Nennen Sie es „Mein Projekt“ und klicken Sie auf Projekt erstellen.

screenshot-02-confirm-project-settings.png

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.

screenshot-03-get-started-elasticsearch.png

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:

screenshot-04-console.png

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.

screenshot-05-connectors.png

In diesem Handbuch wird eine MongoDB-Datenbank verwendet. Wählen Sie MongoDB aus der Connector-Typ-Liste aus.

screenshot-06-mongodb-d6b9-link-elasticsearch.png

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.

screenshot-07-mongodb-d6b9-configure.png

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.

screenshot-08-mongodb-d6b9-connect-index.png

Das wars! Der Connector durchsucht die Datenbank und synchronisiert Dokumente mit „my-index“. Auf der Connectors-Hauptseite wird der aktuelle Status angezeigt.

screenshot-11-mongodb-d6b9-connectors.png

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.

screenshot-10-mongodb-d6b9-scheduling.png


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.

Kostenlosen Test starten