[サンプルコード]
/*
* multiFieldQuery() API を使用します。
* このプロセスを使用して、複数値データを照会するリクエストを作成できます。MultiFieldSubQueryDetails(リスト)情報を指定し、MultiFieldSubQuery リクエストを作成してから、MultiFieldQuery リクエストを作成します。
* 複数値データクエリごとに複数のサブクエリを作成できます。
*
* クエリを実行するときは、次の情報を提供する必要があります。
* MultiFieldSubQueryDetails: ターゲットメトリックの特定のフィールドの詳細。フィールドは、メトリックのサブカテゴリです。たとえば、速度または方向フィールドのみを照会できます。
* 次のパラメーターを指定できます。aggregator、dpValue、rate、および downsample。
* Metric: 照会するメトリック(例: 風)。
* 時間範囲: 開始時刻と終了時刻
*
* 次の情報はオプションです。
* タグ: タイムラインをフィルタリングするために使用される条件。
* Limit/Offset: ページネーションの詳細。
*/
// Create the fields that you want to query.
MultiFieldSubQueryDetails speedFieldDetails = MultiFieldSubQueryDetails
.field("speed").aggregator(Aggregator.SUM).downsample("2s-sum").build();
MultiFieldSubQueryDetails levelFieldDetails = MultiFieldSubQueryDetails
.field("level").aggregator(Aggregator.AVG).downsample("2s-avg").build();
MultiFieldSubQueryDetails tempFieldDetails = MultiFieldSubQueryDetails
.field("temperature").aggregator(Aggregator.COUNT).downsample("2s-count").build();
MultiFieldSubQueryDetails allFieldsDetails1 = MultiFieldSubQueryDetails
.field("*").aggregator(Aggregator.MAX).downsample("2s-max").alias("max_").build();
MultiFieldSubQueryDetails allFieldsDetails2 = MultiFieldSubQueryDetails
.field("*").aggregator(Aggregator.MIN).downsample("2s-min").alias("min_").build();
List<MultiFieldSubQueryDetails> subQueryDetails = new LinkedList<>();
subQueryDetails.add(speedFieldDetails);
subQueryDetails.add(levelFieldDetails);
subQueryDetails.add(tempFieldDetails);
subQueryDetails.add(allFieldsDetails1);
subQueryDetails.add(allFieldsDetails2);
// Create a subquery for the multi-value data model.
MultiFieldSubQuery subQuery = MultiFieldSubQuery.metric(metric).fieldsInfo(subQueryDetails)
.filter(Filter.filter(FilterType.LiteralOr, "district", "Yuhang|Xiacheng|Xihu", true).build())
.build();
// Create a query for the multi-value data model.
MultiFieldQuery query = MultiFieldQuery.start(1542772000L).end(1542772020L).msResolution(false)
.sub(subQuery).build();
List<MultiFieldQueryResult> results = tsdb.multiFieldQuery(query);