Aggregations(aggregation数据集)

  本篇文章为你整理了Aggregations(aggregation数据集)的详细内容,包含有aggregations翻译 aggregation数据集 aggregations 托福 aggregation算法 Aggregations,希望能帮助你了解 Aggregations。

  An aggregation summarizes your data as metrics, statistics, or other analytics.

  Aggregations help you answer questions like:

  
Metric aggregations that calculate metrics,

  such as a sum or average, from field values.

  
Bucket aggregations that

  group documents into buckets, also called bins, based on field values, ranges,

  or other criteria.

  
Pipeline aggregations that take input from

  other aggregations instead of documents or fields.

  
Aggregation results are in the response s aggregations object:

  

{

 

   "took": 78,

   "timed_out": false,

   "_shards": {

   "total": 1,

   "successful": 1,

   "skipped": 0,

   "failed": 0

   "hits": {

   "total": {

   "value": 5,

   "relation": "eq"

   "max_score": 1.0,

   "hits": [...]

   "aggregations": {

   "my-agg-name": {

   "doc_count_error_upper_bound": 0,

   "sum_other_doc_count": 0,

   "buckets": []

  }

 

  
Change an aggregation s scopeedit

  Use the query parameter to limit the documents on which an aggregation runs:

  

GET /my-index-000001/_search

 

   "query": {

   "range": {

   "@timestamp": {

   "gte": "now-1d/d",

   "lt": "now/d"

   "aggs": {

   "my-agg-name": {

   "terms": {

   "field": "my-field"

  }

 

  
Return only aggregation resultsedit

  By default, searches containing an aggregation return both search hits and

  aggregation results. To return only aggregation results, set size to 0:

  

GET /my-index-000001/_search

 

   "size": 0,

   "aggs": {

   "my-agg-name": {

   "terms": {

   "field": "my-field"

  }

 

  
Run multiple aggregationsedit

  You can specify multiple aggregations in the same request:

  

GET /my-index-000001/_search

 

   "aggs": {

   "my-first-agg-name": {

   "terms": {

   "field": "my-field"

   "my-second-agg-name": {

   "avg": {

   "field": "my-other-field"

  }

 

  
Run sub-aggregationsedit

  Bucket aggregations support bucket or metric sub-aggregations. For example, a

  terms aggregation with an avg

  sub-aggregation calculates an average value for each bucket of documents. There

  is no level or depth limit for nesting sub-aggregations.

  

GET /my-index-000001/_search

 

   "aggs": {

   "my-agg-name": {

   "terms": {

   "field": "my-field"

   "aggs": {

   "my-sub-agg-name": {

   "avg": {

   "field": "my-other-field"

  }

 

  
The response nests sub-aggregation results under their parent aggregation:

  

{

 

   "aggregations": {

   "my-agg-name": {

   "doc_count_error_upper_bound": 0,

   "sum_other_doc_count": 0,

   "buckets": [

   "key": "foo",

   "doc_count": 5,

   "my-sub-agg-name": {

   "value": 75.0

  }

 

  
Add custom metadataedit

  Use the meta object to associate custom metadata with an aggregation:

  

GET /my-index-000001/_search

 

   "aggs": {

   "my-agg-name": {

   "terms": {

   "field": "my-field"

   "meta": {

   "my-metadata-field": "foo"

  }

 

  
The response returns the meta object in place:

  

{

 

   "aggregations": {

   "my-agg-name": {

   "meta": {

   "my-metadata-field": "foo"

   "doc_count_error_upper_bound": 0,

   "sum_other_doc_count": 0,

   "buckets": []

  }

 

  Return the aggregation typeedit

  By default, aggregation results include the aggregation s name but not its type.

  To return the aggregation type, use the typed_keys query parameter.

  

GET /my-index-000001/_search?typed_keys

 

   "aggs": {

   "my-agg-name": {

   "histogram": {

   "field": "my-field",

   "interval": 1000

  }

 

  
The response returns the aggregation type as a prefix to the aggregation s name.

  
Some aggregations return a different aggregation type from the

  type in the request. For example, the terms,

  significant terms,

  and percentiles

  aggregations return different aggregations types depending on the data type of

  the aggregated field.

  
The aggregation type, histogram, followed by a # separator and the aggregation s name, my-agg-name.

  
Use scripts in an aggregationedit

  When a field doesn t exactly match the aggregation you need, you

  should aggregate on a runtime field:

  

GET /my-index-000001/_search?size=0

 

   "runtime_mappings": {

   "message.length": {

   "type": "long",

   "script": "emit(doc[message.keyword].value.length())"

   "aggs": {

   "message_length": {

   "histogram": {

   "interval": 10,

   "field": "message.length"

  }

 

  
Scripts calculate field values dynamically, which adds a little

  overhead to the aggregation. In addition to the time spent calculating,

  some aggregations like terms

  and filters can t use

  some of their optimizations with runtime fields. In total, performance costs

  for using a runtime field varies from aggregation to aggregation.

  Aggregation cachesedit

  For faster responses, Elasticsearch caches the results of frequently run aggregations in

  the shard request cache. To get cached results, use the

  same preference string for each search. If you

  don t need search hits, set size to 0 to avoid

  filling the cache.

  Elasticsearch routes searches with the same preference string to the same shards. If the

  shards data doesn’t change between searches, the shards return cached

  aggregation results.

  Limits for long valuesedit

  When running aggregations, Elasticsearch uses double values to hold and

  represent numeric data. As a result, aggregations on long numbers

  greater than 253 are approximate.

  以上就是Aggregations(aggregation数据集)的详细内容,想要了解更多 Aggregations的内容,请持续关注盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: