ネストされたアグリゲーションに問題があります。ここで私が集計を定義する方法と私が得るjson同等物を得る:ネストしたアグリゲーションがAggregationContainerと連携していません
var aggregations = new AggregationDictionary();
var nestedAgg = new AggregationContainer
{
Nested = new NestedAggregation("some_name1")
{
Path = "users",
Aggregations = new TermsAggregation("some_name2")
{
Field = "users.name.keyword",
Size = 100,
Order = new List<TermsOrder> { new TermsOrder() { Key = "_term", Order = SortOrder.Descending } }
}
};
aggregations[aggKey] = nestedAgg;
searchRequest.Aggregations = aggregations;
上記はjsonに変換されています。それだけでパスなし集計定義を示しています。直接AggregationDictionary
とAggregationContainer
を使用して
{
"aggs": {
"some_name1": {
"nested": {
"path": "users"
}
}
}
?私は 'SearchRequest'に複数の集計をどのように追加しますか? –
いくつかの理由から、直接使用するのはちょっとしたことです:)それぞれの集約タイプには名前を取るコンストラクタがありますが、 'AggregationDictionary'を使うと、キーの名前は集約に使用される名前になります。 'AggregationContainer'を直接使用すると、答えに応じて集約を割り当てるときに' Aggregations'と 'Meta'プロパティも設定する必要があります。より簡単にするために、 'AggregationBase'から' AggregationContainer'と 'AggregationDictionary'への暗黙的な変換があります。 –
集計を '&&'と組み合わせることができます:https://www.elastic.co/guide/en/elasticsearch/client/net-api/current/writing-aggregations.html –