Elastic Search: Erstellen einer semantischen Suche

Überblick


Onboarding der Daten

Elastic Cloud-Konto erstellen

Registrieren Sie sich zunächst einmal, um Elastic Cloud 14 Tage lang kostenlos ausprobieren zu können. Öffnen Sie cloud.elastic.co, erstellen Sie ein Konto und folgen Sie den Schritten unten, um herauszufinden, wie Sie Ihren ersten Elastic Stack in einer unserer mehr als 50 unterstützten Regionen weltweit starten können.

Wenn Sie auf Edit setting klicken, können Sie einen Cloud-Anbieter – Google Cloud, Microsoft Azure oder AWS – auswählen. Anschließend werden Sie um die Auswahl der zugehörigen Region gebeten. Als Nächstes können Sie festlegen, welches Hardware-Profil verwendet werden soll, und so das Deployment besser an Ihre Anforderungen anpassen. Zudem wurde bereits die neueste Version von Elastic vorausgewählt.

Beim Erstellen Ihres Deployments erhalten Sie einen Nutzernamen und ein Passwort. Denken Sie daran, die Informationen herunterzuladen oder zu kopieren, da Sie sie für die Installation Ihrer Integrationen benötigen.

Ingestieren von Daten mit dem Elastic-eigenen Web-Crawler

Nachdem Sie nun Ihr Deployment erstellt haben, können Sie damit beginnen, Daten an Elastic zu senden. Dazu werden wir den Web-Crawler von Elastic verwenden. Wählen Sie als Erstes die Kachel Build a semantic search experience aus.

Als Nächstes sehen Sie eine Seite, auf der Sie mit einer der folgenden Methoden die semantische Suche einrichten können:

  • Elastic Learned Sparse Encoder
  • Vektorsuche
  • NLP-Anreicherung

Alle diese Funktionen sind neben anderen Teil der Elasticsearch Relevance Engine (ESRE).

Sehen wir uns im Rahmen dieser Anleitung an, wie sich mit Elastic Learned Sparse Encoder und der Vektorsuche eine semantische Suche einrichten lässt.

HINWEIS: Wenn Sie sich mit der semantischen Suche noch nicht so gut auskennen und Text durchsuchen möchten, sollten Sie sich zunächst die Anleitung für Elastic Learned Sparse Encoder ansehen. Die Anleitung für die kNN-Vektorsuche ist möglicherweise besser für Nutzer:innen geeignet, die einige der folgenden Kriterien erfüllen:

  • Sie haben Zugang zu Data Science oder verfügen über Data-Science-Kenntnisse
  • Sie haben festgestellt, dass das integrierte Modell „Elastic Learned Sparse Encoder“ für die semantische Suche für ihre Anwendungsfälle nicht besonders gut geeignet ist
  • Sie haben Erfahrungen im Vergleichen von Einbettungsmodellen und der möglichen Feinjustierung von ML-Modellen
  • Sie sind sich bewusst, dass für die schnelle kNN-Suche große RAM-Ressourcen erforderlich sind

Wenn Sie bereit sind, wählen Sie Ihre bevorzugte Methode für das Erstellen einer KI-basierten Suchanwendung aus.

Bei beiden Methoden müssen wir als Erstes Create an index auswählen. Anschließend können wir den Web-Crawler auswählen, um das Ingestieren unserer Daten zu starten.

Jetzt richten wir den Web-Crawler ein. Sehen Sie sich dazu diese angeleitete Tour an oder folgen Sie den Anweisungen unten:

Als Nächstes erstellen wir einen Index. In dieser Anleitung ingestieren wir Blogposts von elastic.co.

Web crawler search index

Wir geben einen Namen für den Index ein und wählen dann Create index aus. Als Nächstes müssen wir die Domäne validieren (Validate Domain) und die Domäne hinzufügen (Add domain).

Wenn erforderlich, wählen wir nach dem Hinzufügen der Domäne unten rechts Edit aus, um eine Unterdomäne hinzuzufügen.

Add a domain to your indexAls Nächstes wählen wir Add a domain to your indexCrawl rules aus und fügen Regeln für das Crawlen hinzu, wie unten dargestellt.*

Manage domains

* Da die Seite, die wir crawlen wollen, mit anderen Seiten verlinkt ist, empfiehlt es sich, zusätzliche Regeln hinzuzufügen, um sicherzustellen, dass diese Links und andere nicht mitgecrawlt werden.

 

Wenn wird dann später unser Feld auswählen, überschreiten einige Felder die Anzahl von 512 Token, z. B. das Feld body_content . Um nur die relevanten Teile der Blogposts herauszufiltern, empfiehlt es sich, Extraktionsregeln zu verwenden.

Dazu klicken wir unter Extraction rules auf Add content extraction rule.

Wir geben dann unter Rule description einen aussagekräftigen Namen für die Regel ein, an dem sich ablesen lässt, welche Daten nach dieser Regel extrahiert werden. Für die Zwecke dieser Anleitung nennen wir die Regel „main“.

Jetzt wählen wir Apply to all URLs und dann Add content fields aus. Daraufhin öffnet sich ein Flyout. Wir füllen die Felder aus und wählen die folgenden Kriterien aus:

  • Document field:
    • Field name: main
  • Source:
    • Extract content from: HTML element
    • CSS selector or XPath expression: main
  • Content
    • Use content from: Extracted value
    • Store extracted content as: A string

Anschließend klicken wir auf Save und dann auf Save rule.


Arbeiten mit Elasticsearch und ESRE

Ingestieren und Durchsuchen Ihrer Daten mit Elastic Learned Sparse Encoder

Wenn Sie sich die oben empfohlenen Kriterien für den Einstieg in die Vektorsuche angesehen haben und diese Methode bevorzugen, gehen Sie links zu Search your data using kNN vector search und befolgen Sie die Anweisungen.

Wenn Sie lieber das für die semantische Suche vorkonfigurierte Modell „Elastic Learned Sparse Encoder“ verwenden möchten, halten Sie sich an die Anweisungen unten.

Dazu wählen wir erst oben Copy and customize und dann Pipelines und Unlock your custom pipelines aus. Als Nächstes wählen wir unter Machine Learning Inference Pipelines die Option Deploy aus, um das Modell herunterzuladen und es in unserem Elasticsearch-Deployment zu installieren.

Wenn das geschafft ist, wählen wir Start single-threaded und dann + Add Inference Pipeline. Als Nächstes machen wir Folgendes:

  1. Wir wählen eine neue oder vorhandene Pipeline aus.
  2. Wir geben einen Namen für die Pipeline ein.
  3. Zum Schluss wählen wir im Dropdown „Select trained ML Model“ die Option ELSER Text Expansion aus und klicken dann auf Continue.

Jetzt müssen wir die Felder auswählen, auf die ELSER Text Expansion angewendet werden soll. Wir wählen als Quellfelder „title“ und „main“ aus und klicken dann auf Add.

Als Nächstes klicken wir auf Continue.

Den Schritt Test your pipeline results überspringen wir, indem wir auf Continue und dann auf Create pipeline klicken.

Damit ist die Pipeline erstellt. Als Nächstes klicken wir rechts oben auf Crawl und dann auf Crawl all domains on this index.

Jetzt kann es mit dem Suchen nach den gewünschten Informationen losgehen. Dafür gibt es zwei empfohlene Methoden:

  • Verwenden der Dev Tools
  • Nutzen der Funktion Search Application als Endpoint für Ihre Anwendung

Wann ist welche Methode die richtige?

  • Wenn Sie Entwickler:in sind und vorhaben, eine Suche (z. B. für Ihre Webanwendung) zu implementieren, sollten Sie die Dev Tools verwenden, um die Suchergebnisse aus Ihren indexierten Daten zu testen und feinzujustieren.
  • Wenn Sie einen Suche-Endpoint erstellen möchten, an den Sie von Ihrer eigenen Anwendung aus Suchanfragen senden und Suchergebnisse zurückgeben können, sollten Sie die Funktion Search Application verwenden.

Einen kurzen Überblick über die Verwendung der Dev Tools und der Funktion Search Application erhalten Sie in den folgenden beiden kurzen Videos. Informationen zu deren Verwendung erhalten Sie auch in dieser angeleiteten Tour.


Wie geht es weiter?

Vielen Dank, dass Sie mit Elastic Cloud eine semantische Suche für Ihre Daten eingerichtet haben. Für Ihre Elastic-Journey sollten Sie die wichtigsten operativen, Security- und Datenkomponenten kennen, die Sie als Nutzer:in verwalten müssen, wenn Sie einen Cluster in Ihrer Umgebung bereitstellen.