2018年6月21日 エンジニアリング

Kibanaのクエリ言語を改善

著者 Matt Bargar

​6.0ではKibanaのクエリバーに対して新しい実験的言語を導入しました。それ以降、フィードバックに耳を傾け、調整を行ってきています。すべての実験でそうであるように、一部は機能しますが、他の一部は機能しませんでした。6.3で何が変更されていて、何が新しいか、そして次にどこを目指しているかを確認しましょう。

別の元のストーリー

Kibanaクエリ言語の最初のイテレーションは複雑でした。クエリバーとフィルターバーを統合したいと考えていました。したがって、新しい言語は利用可能なフィルターのすべてのタイプをサポートする必要がありました。現在のluceneクエリ構文の使いやすさも維持したいと考えていました。高度な機能構文と基本的なクエリ構文を単一の言語にしようとすることになりました。これは1つの構文あるいは別の構文をいつ使用していいか不明の新規ユーザーを混乱させただけでした。

簡素化された構文

6.3では、言語がかなり簡素化されています。単一のボックスにすべてを詰め込むのではなく、使いやすさだけに注力しています。機能構文がなくなり、基本的な構文が強化されています。Kibanaでデフォルトで現在使用されているluceneクエリ構文になじみがある場合、この新しい言語にも親しみを感じるでしょう。ほとんど同じで、調整と改善が少し行われているだけです。たとえば、範囲のオペレーターが少し変更されていて、スクリプト付きのフィールドサポートが含まれています。これは新しい言語の最初のイテレーションから引き継がれています。[ドキュメントにて]新しい構文のすべて確認できます2

古いluceneクエリ言語とほとんどそっくりに見える新しい言語があります。何が大事なことでしょうか?Kibanaだけに対して言語を構築する主なメリットは、Kibanaがそれを理解できることです。解析し、内部で確認できる言語を利用すると、様々なすばらしい機能を構築できます。弊社はこれに着手しています。

オートコンプリート

Kibanaオートコンプリート

そうです。6.3では、Kibanaのクエリバーにオートコンプリートを追加しています。入力を開始するだけで、フィールドのサジェスチョン、(キーワードフィールドの)値、クエリ演算子の提供を開始します。ぜひ指を休ませてあげてください。各フィールド名のスぺリング方法を全部記憶しようとするのをやめてください。片手で検索したいですか?マウスでクエリを構築することもできるようになりました。あまり多くは語りません。ただご自分で試してみてください。気をつけてください。オートコンプリートを試した後、ほとんどの人が「古いバージョンのKibanaを使えなくなりました」と言っています。

さらに展開

ユーザーの皆様がこれを試してみたくなっていたらうれしく思います。まだ実験中であるため、Luceneクエリ構文はまだKibanaのデフォルト言語です。しかし、新言語のオプトインはかつてなかったほど簡単になっています。Kibanaの高度な設定に変更を加える必要がなくなりました。クエリバーの[オプション]ボタンをクリックするだけで、[クエリ機能をオンにする]トグルを有効にできます。

Kibanaクエリ機能拡張オプトイン

Kibanaの新言語をお試しになったら、ぜひご意見をお聞かせください!弊社のディスカッションフォーラムに投稿するか、IRCで弊社とチャットしてください。弊社のGithubㇾポジトリ―にバグレポートや機能拡張リクエストをアップしてください。6.0以降に加えた変更のほとんどがユーザーのフィードバックに基づいているものです。ご協力いただき本当にありがとうございます!オートコンプリートは一部の機能に過ぎません。Kibanaの新しいクエリ言語のストアには、たくさんの他のアイディアがあります。高度な言語によりいつか単一のアピアランスを実現することもできるようになるかもしれません 😎