3

High Level Rest Client個別の値でドキュメントを検索するために使用する方法。ドキュメンテーションは、によってAggregation framework異なるものを見つけることについて話しています。しかし、 を使用した例は見つかりませんでした。で区別するにはどうすればよいですか。documentsfieldHigh Level Rest Clientdocumentsfield

BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery()
                .must(QueryBuilders.matchQuery("Field1", "Value1"))
searchSourceBuilder.query(boolQueryBuilder);

searchSourceBuilder.aggregation(????)

データ

{
    ..
    ..

      "Field1" : "Value1",
      "Field2" : "Value2"
    },
    {
      "Field1" : "Value1",
      "Field2" : "Value21"
    }
}

期待される出力 ("Field1" : "Value1" を含む任意のドキュメント)

{
    ..
    ..

      "Field1" : "Value1",
      "Field2" : "Value2"
    }
}

個別のネストされた値のエラスティック検索クエリ

エラスティック アグリゲーション

以下のコードでも同じ結果が得られます。

   AggregationBuilder termAggregationBuilder = AggregationBuilders
                .terms("someName")
                .field("Field1");
   AggregationBuilder topHitsAggregationBuilder = AggregationBuilders
                .topHits("someOtherName")
                .fetchSource(includeFields, excludeFields);
   searchSourceBuilder.aggregation(termAggregationBuilder.subAggregation(topHitsAggregationBuilder));
4

0 に答える 0