2017-08-27 7 views
0

Elasticsearchのn個の最新アイテムの(合計)値を集計します。Elasticsearch 5:最新のn個のアイテムのプロパティ値の集計

「トップヒット」(日付フィールドでソート)を試みましたが、集計できませんでした。最新のn個のアイテムが返されました。

私はすべてのアイテムの値の集計を行う次のクエリを持っていますが、これを限定するにはどうすればいいですか - たとえば、20項目を日付フィールドでソートしますか?

http://mysearchdomain/index/type/_search?size=0 
{ 
    "aggs": { 
    "agg_name1": { 
     "terms": { 
     "field": "_parent", 
     "size": 2000000 
     }, 

     "aggs": { 
     "agg_name2": { 
      "terms": { 
      "field": "myfield" 
      }, 

      "aggs": { 
      "agg_name3": { 
       "sum": { 
       "field": "fieldToAggregate" 
       } 
      } 
      } 

     } 
     } 

    } 
    } 

} 
+0

集計にフィルタを追加できます。 https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-filters-aggregation.html –

+0

@ArchitSaxenaフィルタは集計データセットのサイズをどのように制限しますか?ソート?ドキュメントによると、これを行うことはできないようです。 – Scarabas

答えて

0

これはドキュメントから判断することはできません。すでに集約されているデータ(「agg_name1」あたり)をフィルタリングしようとしていますが、これは主な問題です。 top_hitsは、すでに集約されたデータセットに対しては機能しません。

あなたのベスト・ベットは、それぞれが "agg_name1"の集計リクエストを作成しています。これは悲しいことに、あなたが持つ可能性があるより多くのリクエスト(同じ量の「agg_name1」)を意味します。

関連する問題