問題タブ [elasticsearch-aggregation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
elasticsearch - ElasticSearch 集計の結果をインデックスに戻すことはできますか?
したがって、ホスト A からホスト B への ping データを含むインデックスがあり、データは次のようになります。
目標は、ping の値 (上記の「値」) の 90 パーセンタイル データも、移動ウィンドウ (過去 1 時間、最終日など) に保存することです。
集計でこれを実行できることはわかっていますが、私の質問は次のとおりです。
ElasticSearch は、集計 (またはクエリ) の出力をインデックスに自動的に追加する方法をサポートしていますか?
おそらく、出力を取得してフィールドを調整し、ヘルパー アプリケーションを使用してデータを元に戻すことができることはわかっていますが、これが ES のみを使用して可能かどうかについて興味がありました。
同等の SQL の例を使用するには、次のようなものを探します。
elasticsearch - ElasticSearch を使用した複数のメトリック サブアグリゲーションの状況
Elasticsearch がバケットによるサブ集計をサポートしていることは承知しています (バケット集計では、バケットまたはメトリクスのサブ集計を使用できます)。メトリクス集計ではサブ集計はできません。それは理にかなっているかもしれませんが、これがユースケースです。
親として用語集約があります。そして、別のterm
集約をその子として使用します。childterm
には type の子集約がありtop_hits
ます。top_hits
メトリック集計であるため、子集計を取ることはできません。avg
次に、集計をミックスに含める必要があります。与えられたのは、メトリック集計であるためtop_hits
、集計ツリーの最後の集計でありavg
、子として持つことはできません。top_hits
以下は、望ましい集約レベルです。(もちろん、これtop_hits
はメトリック集計であり、集計にも当てはまりavg
ます。
これに対処するための回避策または最善の方法は何ですか?
elasticsearch - 集計をelasticsearchの上位Xヒットに制限する
ElasticSearch は、from パラメーターと size パラメーターに関係なく、クエリのすべてのヒットに基づいて集計結果を作成します。これはほとんどの場合に必要なことですが、集計を上位 N 件のヒットに制限する必要がある特定のケースがあります。制限フィルターは、最適な N 個のアイテムを取得するのではなく、スコアとは無関係に (シャードごとに) クエリに一致する最初の X のみを取得するため、適切ではありません。
上位 N 個の結果に限定された集計を作成できるようにするために、ヒット カウントの上限が N であるクエリを作成する方法はありますか? もしそうなら、どのように?
補助的な質問:私の場合は固定境界が必要ですが、一致するドキュメントのスコアを制限することも代替手段になる可能性があります。min_score パラメータは集計に影響しますか?
elasticsearch - エラスティックサーチアグリゲーションの動的タイムゾーンオフセット?
それぞれにタイムスタンプがあるドキュメントを集約しています。タイムスタンプは UTC ですが、ドキュメントごとに異なるローカル タイム ゾーン ( "timezone": "America/Los_Angeles"
) もあります。
date_histogram aggregation
UTC や固定タイム ゾーンではなく、現地時間に基づいてを実行しようとしています (たとえば、オプションを使用"time_zone": "America/Los_Angeles"
)。
集計前に各ドキュメントのタイムゾーンを現地時間に変換するにはどうすればよいですか?
単純な集計は次のとおりです。
elasticsearch - カーディナリティ集計を「場所」条件と組み合わせますか?
フィールドに基づいて個別のヒット数を作成しようとしていますが、行き詰まっています。
カーディナリティと次のような条件を組み合わせるにはどうすればよい"select distinct(lastname) from table where name like 'George%'"
ですか?
カーディナリティで「where」条件を使用するにはどうすればよいですか?