Elasticsearch Ruby クライアント向け ES|QL クエリビルダーのご紹介

Elasticsearch Ruby クライアント用に最近リリースされた ES|QL クエリ ビルダーの使用方法を学習します。Ruby コードを使用して ES|QL クエリをより簡単に構築するためのツール。

Elasticsearch を実際に体験してみましょう。サンプルノートブックを詳しく調べたり、Elastic の無料クラウドトライアルを開始したり、今すぐローカルマシンで Elastic を試したりできます。

最近、Apache 2 ライセンスに基づいて公開された Ruby gem、 elastic-esqlをリリースしました。この gem を使用すると、Elastic のES|QLクエリを慣用的な Ruby で構築し、ES|QL クエリ API で使用できるようになります。ES|QL を使用すると、開発者はクエリを介して Elasticsearch に保存されているデータをフィルタリング、変換、分析できます。「パイプ」( | )を使用して、データを段階的に処理します。代わりに gem は Ruby 関数を使用します。これを元のオブジェクトに連鎖して、より複雑なクエリを構築できます。

ESQL:

ルビー:

インストール

この gem は、RubyGems から次のようにインストールできます。

または、プロジェクトの Gemfile に追加することもできます。

使用法

完全なクエリを一度に構築することも、 fromrowなどのソース コマンドを使用してクエリ オブジェクトを作成し、それに基づいて ES|QL メソッドを連鎖して構築することもできます。

gem はto_sメソッドでコードを ES|QL に変換するので、印刷されるか文字列としてキャストされるときに ES|QL クエリを返します。

各関数の!に相当するものを使用して、クエリ オブジェクトをインスタンス化し、その初期状態を変更できます。

このツールは、 enrichsortなどの追加ステップを ES|QL 関数に連鎖させる便利な方法を提供します。Elastic::ESQLオブジェクトでenrich呼び出すと、それにonwithを連鎖できます。

sortを使用した後、クエリにdescascnulls_firstnulls_lastを連鎖させることもできます。

また、ES|QL クエリを自分で記述する場合や、ライブラリにまだ追加されていない機能を使用する場合に備えて、カスタム文字列もサポートされています。customクエリの末尾の文字列を結合します。パイプ文字を追加せずに、関数に送信されるとそれらが追加されます。これらはスペース文字によってクエリの残りの部分に結合されます。

custom関数を連鎖させることもできます:

Ruby クライアントで ES|QL クエリビルダーを使用する

クエリ オブジェクトを送信することで、 elasticsearch-rubyesql.query API でクエリ ビルダーを直接使用できます。

Elasticsearch Ruby クライアントの ES|QL Helper と一緒に使用することもできます。詳細については、以下を参照してください。

スタンドアロンツールとして

この gem は、ES|QL クエリを慣用的な方法で構築するためのスタンドアロン ツールとして設計されています。ランタイム依存関係がないため、公式の Elasticsearch Ruby クライアントと一緒に使用することも、単独で使用することもできます。

生成されたクエリは、アプリケーションが Elasticsearch API (Ruby かどうかに関係なく) と対話するあらゆる方法でesql.query API で使用できます。elastic-esqlを使用してクエリを構築すると、生成された文字列をリクエスト本文のqueryパラメータとして API に送信できます。

以前、 Elasticsearch を一般的な Ruby ツールと併用する方法について書きました。この gem は、一般的な Ruby ツールと組み合わせて使用し、ES|QL を使用して Elasticsearch をクエリできます。

まとめ

このライブラリは現在開発中であり、最終的な API はまだ完成していません。現在はテクニカルプレビューとしてリリースされています。現在の API または一般的な使用方法に関してフィードバックがある場合は、遠慮なく新しい問題を開いてください。Ruby ES|QL クエリ ビルダーの詳細については、 READMEを参照してください。

関連記事

最先端の検索体験を構築する準備はできましたか?

十分に高度な検索は 1 人の努力だけでは実現できません。Elasticsearch は、データ サイエンティスト、ML オペレーター、エンジニアなど、あなたと同じように検索に情熱を傾ける多くの人々によって支えられています。ぜひつながり、協力して、希望する結果が得られる魔法の検索エクスペリエンスを構築しましょう。

はじめましょう