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 に追加することもできます。
使用法
完全なクエリを一度に構築することも、 fromやrowなどのソース コマンドを使用してクエリ オブジェクトを作成し、それに基づいて ES|QL メソッドを連鎖して構築することもできます。
gem はto_sメソッドでコードを ES|QL に変換するので、印刷されるか文字列としてキャストされるときに ES|QL クエリを返します。
各関数の!に相当するものを使用して、クエリ オブジェクトをインスタンス化し、その初期状態を変更できます。
このツールは、 enrichやsortなどの追加ステップを ES|QL 関数に連鎖させる便利な方法を提供します。Elastic::ESQLオブジェクトでenrich呼び出すと、それにonとwithを連鎖できます。
sortを使用した後、クエリにdesc 、 asc 、 nulls_first 、 nulls_lastを連鎖させることもできます。
また、ES|QL クエリを自分で記述する場合や、ライブラリにまだ追加されていない機能を使用する場合に備えて、カスタム文字列もサポートされています。customクエリの末尾の文字列を結合します。パイプ文字を追加せずに、関数に送信されるとそれらが追加されます。これらはスペース文字によってクエリの残りの部分に結合されます。
custom関数を連鎖させることもできます:
Ruby クライアントで ES|QL クエリビルダーを使用する
クエリ オブジェクトを送信することで、 elasticsearch-rubyとesql.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を参照してください。




