Einführung des ES|QL-Abfragegenerators für den Elasticsearch Ruby Client

Lernen Sie, wie Sie den kürzlich veröffentlichten ES|QL-Abfragegenerator für den Elasticsearch Ruby Client verwenden. Ein Tool, um ES|QL-Abfragen mit Ruby-Code einfacher zu erstellen.

Testen Sie Elasticsearch: Sehen Sie sich unsere Beispiel-Notebooks an, starten Sie eine kostenlose Cloud-Testversion oder testen Sie Elastic jetzt auf Ihrem lokalem Gerät.

Wir haben kürzlich elastic-esql veröffentlicht, ein Ruby-Gem, das unter der Apache 2-Lizenz veröffentlicht wurde. Dieses Juwel ermöglicht es Ihnen, Elastic ES|QL- Abfragen in idiomatischem Ruby zu erstellen, die Sie dann mit der ES|QL-Abfrage-API verwenden können. ES|QL ermöglicht es Entwicklern, in Elasticsearch gespeicherte Daten mittels Abfragen zu filtern, zu transformieren und zu analysieren. Es verwendet "Pipes" ( | ), um die Daten schrittweise zu verarbeiten. Das Gem verwendet stattdessen Ruby-Funktionen, die Sie an das ursprüngliche Objekt anhängen können, um komplexere Abfragen zu erstellen:

ESQL:

Rubin:

Installation

Das Gem kann über RubyGems installiert werden mit:

Alternativ kann es der Gemfile-Datei eines Projekts hinzugefügt werden:

Verwendung

Sie können entweder eine vollständige Abfrage auf einmal erstellen oder ein Abfrageobjekt mit einem Quellbefehl wie from oder row erstellen und dann ES|QL-Methoden verketten, um darauf aufzubauen.

Das Gem übersetzt den Code in ES|QL für die to_s -Methode, sodass es die ES|QL-Abfrage zurückgibt, wenn sie ausgegeben oder als String gecastet wird:

Sie können ein Abfrageobjekt instanziieren und seinen Anfangszustand verändern, indem Sie die ! -Äquivalente jeder Funktion verwenden:

Das Tool bietet bequeme Möglichkeiten, zusätzliche Schritte an eine ES|QL-Funktion anzuhängen, wie z. B. enrich und sort. Sobald Sie enrich auf einem Elastic::ESQL -Objekt aufgerufen haben, können Sie on und with daran anhängen:

Sie können auch desc, asc, nulls_first und nulls_last an Ihre Abfrage anhängen, nachdem Sie sort verwendet haben:

Es unterstützt auch benutzerdefinierte Zeichenketten, falls Sie die ES|QL-Abfrage selbst schreiben oder eine Funktion nutzen möchten, die noch nicht in die Bibliothek aufgenommen wurde. custom wird die Zeichenketten am Ende der Abfrage zusammenfügen. Die Zeichen werden beim Senden an die Funktion hinzugefügt, ohne dabei Pipe-Zeichen einzufügen. Sie werden durch ein Leerzeichen mit dem Rest der Anfrage verbunden.

Sie können auch custom -Funktionen verketten:

Verwendung des ES|QL Query Builders mit dem Ruby-Client

Sie können den Query Builder direkt mit elasticsearch-ruby und der esql.query API verwenden, indem Sie das Query-Objekt senden:

Sie können es auch mit dem ES|QL-Helper des Elasticsearch Ruby-Clients verwenden. Weitere Informationen finden Sie hier:

Als eigenständiges Werkzeug

Das Gem ist als eigenständiges Werkzeug konzipiert, um ES|QL-Abfragen auf idiomatische Weise zu erstellen. Es hat keine Laufzeitabhängigkeiten; Sie können es mit dem offiziellen Elasticsearch Ruby-Client oder auch eigenständig verwenden.

Die generierte Abfrage kann mit der esql.query API auf jede Art und Weise verwendet werden, wie eine Anwendung mit der Elasticsearch API interagiert (Ruby oder nicht). Sobald eine Abfrage mit elastic-esql erstellt wurde, kann die generierte Zeichenkette als Parameter query im Anfragetext an die API gesendet werden.

Ich habe bereits über die Verwendung von Elasticsearch mit gängigen Ruby-Tools geschrieben. Dieses Gem kann mit allen gängigen Ruby-Tools verwendet werden, um Elasticsearch mit ES|QL abzufragen.

Fazit

Diese Bibliothek befindet sich in aktiver Entwicklung, und die endgültige API ist noch nicht fertiggestellt. Es ist aktuell als technische Vorschauversion veröffentlicht. Sollten Sie Feedback zur aktuellen API oder zur allgemeinen Nutzung haben, zögern Sie bitte nicht , ein neues Issue zu eröffnen. Weitere Informationen zum Ruby ES|QL Query Builder finden Sie in der README-Datei .

Zugehörige Inhalte

Sind Sie bereit, hochmoderne Sucherlebnisse zu schaffen?

Eine ausreichend fortgeschrittene Suche kann nicht durch die Bemühungen einer einzelnen Person erreicht werden. Elasticsearch wird von Datenwissenschaftlern, ML-Ops-Experten, Ingenieuren und vielen anderen unterstützt, die genauso leidenschaftlich an der Suche interessiert sind wie Sie. Lasst uns in Kontakt treten und zusammenarbeiten, um das magische Sucherlebnis zu schaffen, das Ihnen die gewünschten Ergebnisse liefert.

Probieren Sie es selbst aus