集計 API アップグレード ガイド
はじめに
Jira 10.4 では、新しい検索 API を導入し、Lucene 専用の org.apache.lucene.search.Collector
を廃止しました。com.atlassian.jira.search.index.IndexSearcher#scan(SearchRequest request, Function<Document, Boolean> callback)
に置き換えることを推奨しています。しかし、scan
メソッドを集計に使用することは、ローカル処理のデータ転送量が多いため非効率であることを認識しています。
これに対処するため、集計操作専用に設計された新しい集計 API を導入します。
このページでは、新しい集計メソッドを詳しく説明し、Lucene 専用コレクターから集計 API への移行例を紹介します。
集計メソッド
Jira 10.5 では、メトリック集計とバケット集計という 2 つの集計タイプを導入します。
メトリック集計
メトリック集計では、一連のドキュメントの値を計算します。Jira 10.5 では、次のメトリック集計が可能です。
- AvgAggregation: 一致するすべてのドキュメントにおけるフィールドの数値の平均を計算します。
- MaxAggregation: 一致するすべてのドキュメントにおけるフィールドの最大数値を決定します。
- SumAggregation: 一致するすべてのドキュメントにおけるフィールドの数値の合計を計算します。
バケット集計
バケット集計では、メトリック集計とは異なり、指定された条件に基づいてドキュメントをグループ化し、サブ集計を含めることができます。Jira 10.5 では、次のバケット集計が可能です。
- DateHistogramAggregation: 日付間隔に基づいて、ドキュメントをバケットにグループ化します。
- TermsAggregation: 指定されたフィールド内の固有の用語に基づいて、ドキュメントをバケットにグループ化します。
今後、より多くの集計を導入する予定です。Search - Search API
コンポーネントを使用して JAC で提案チケットを提出することで、新しい集計を提案できます。
考慮事項
フィールドで集計を行うには、ドキュメント値が有効になっている状態でフィールドがインデックス化されていることを確認してください。
コレクターを集計 API に移行する
例 1 - 数値型カスタム フィールドの平均値を計算する
Legacy Lucene | 集計 API |
---|---|
|
|
例 2 - プロジェクトごとに課題をカウントする
Legacy Lucene | 集計 API |
---|---|
|
|