ポイント: Kibanaを使用すると、ユーザーはElasticSearchでLuceneおよびKibanaクエリ言語(KQL)を使用してクエリを実行できます。このガイドでは、JSONクエリの入力方法を詳述し、KQLとLuceneの構文の違いを強調しています。
- JSON DSLクエリはKibanaで利用できます。
- KibanaはKQLとLuceneの両方をサポートしており、主要な構文の違いがあります。
私たちはCURLを使ってElasticSearchにクエリを送信する方法について長々と議論しました。今度はKibanaを使ってそれを行う方法を示します。
このブログ投稿をフォローして、ESサーバーにデータを追加できます。
JSONクエリ(別名JSON DSL)は、curlと一緒に使用するものです。しかし、Kibanaでもそれを使用できます。集約、ネスト、および他のクエリでは機能しません。
JSONを使用する場合の違いは、クエリオブジェクトのみを渡すことです。したがって、このcurlクエリでは:
{"query":{"match":{"geoip.country_name":"Luxembourg"}}}
Kibanaにはこの部分だけを貼り付けます。
{"match":{"geoip.country_name":"Luxembourg"}}
Kibanaでのクエリの入力
KibanaのDiscoveryタブで、上記のテキストを貼り付け、最初にクエリ言語をKQLからLuceneに変更し、logstash*インデックスパターンを選択します。Kibanaクエリ言語(KBL)については、以下で説明します。
KQLからLuceneにクエリ言語を変更するのを忘れると、次のエラーが表示されます:
Discover: input.charAt is not a function. (In 'input.charAt(peg$currPos)', 'input.charAt' is undefined)
JSON DSLクエリを入力する最も簡単な方法は、クエリエディタを使用することです。これにより、クエリオブジェクトが自動的に作成されます:
クエリを保存し、名前を付けます:
Kibanaクエリ言語(KBL)とLucene
KibanaではKBLまたはLuceneを使用できます。基本的には同じですが、KBLは簡素化を提供し、スクリプトをサポートしています。
以下は、各クエリ言語での一般的なクエリとその方法です。
| KBL | Lucene | 説明 |
|---|---|---|
| request:"/wordpress/" | request:"/wordpress/" | コロン(:)は等しいことを意味します。 引用符は言葉のコレクション、つまりフレーズを意味します。 |
| request:/wordpress/ | request:/wordpress/ | 1語の場合は引用符は必要ありません。 |
| request:/wordpress/ | request:/wordpress/ | 1語の場合は引用符は必要ありません。 |
| request:/wordpress/ および response:404 | request:/wordpress/ および response:200 | KBLでは、ブール演算子を明示的に指定する必要があります。Luceneでは、演算子は演算子として認識されず、テキストの文字列として認識されますが、大文字で書くと演算子として認識されます。 |
| wordpress | wordpress | ドキュメント内の任意のテキストに基づいて一致します(この例ではwordpress)特定のフィールドではありません。 |
| 200または404 | 200 404 | Luceneにorという単語を追加すると、「or」という文字列を含むテキストも含まれるようになります。したがって、オフにするか、キャピタルORを使用してください。 |
| 200および404 | 200 AND 404 | Luceneでは論理演算子に大文字を使用します。 |
| geoip.country_name: "Luxembourg" | {"match":{"geoip.country_name": "Luxembourg"}} | LuceneはJSON DSLクエリ言語をサポートしており、上記のように説明しました。 |
| response:>=200 および response:< =404 | response:[200 TO 404] | 範囲クエリ |
| キロバイト > 1 | サポートされていません | スクリプト化されたフィールド、キロバイトは: if (doc['bytes'].size()==0) { return 0; } return doc['bytes'].value / 1024; |
ElasticSearchガイド
- 初心者のためのElasticSearchチュートリアル: ElasticSearchの基本
- ElasticSearchでApache Hiveを使用する
- ElasticSearchでApache Sparkを使用する
- Curl ElasticSearchコマンド チートシート
- Spark ElasticSearch Hadoopの更新とUpsertの例と説明
- Pythonを使用してApache SparkデータをElasticSearchに書き込む方法
- ElasticSearch検索構文とブールおよび集計検索
- ElasticSearchネストクエリ: 埋め込まれたドキュメントを検索する方法
- ElasticSearch結合: Has_Child, Has_parentクエリ
- Elasticバージョン7クラスターのセットアップ方法
- nginxとElasticSearchのためのFilebeatの構成方法
- BeatsとLogstashを使用してElasticSearchにログを送信する
- Logstashを使用してCSVファイルをElasticSearchに読み込む方法
- ElasticSearch集計の説明
- ELKスタックとは何ですか?
- Logstash 101: データ処理パイプラインでのLogstashの使用
- Kibanaを使用してElasticSearchでLuceneおよびKibanaクエリ言語を使用してクエリを実行する
- ElasticSearch機械学習
- Elasticエンタープライズサーチのインストール方法
- GitHubとElasticエンタープライズサーチを使用する方法
これらの投稿は私自身の意見であり、BMCの立場、戦略、または意見を必ずしも代表するものではありません。