|  | @@ -6,9 +6,10 @@
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  A multi-bucket aggregation that creates composite buckets from different sources.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -Unlike the other `multi-bucket` aggregation the `composite` aggregation can be used
 | 
	
		
			
				|  |  | -to paginate **all** buckets from a multi-level aggregation efficiently. This aggregation
 | 
	
		
			
				|  |  | -provides a way to stream **all** buckets of a specific aggregation similarly to what
 | 
	
		
			
				|  |  | +Unlike the other `multi-bucket` aggregations, you can use the `composite`
 | 
	
		
			
				|  |  | +aggregation to paginate **all** buckets from a multi-level aggregation
 | 
	
		
			
				|  |  | +efficiently. This aggregation provides a way to stream **all** buckets of a
 | 
	
		
			
				|  |  | +specific aggregation, similar to what
 | 
	
		
			
				|  |  |  <<scroll-search-results, scroll>> does for documents.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  The composite buckets are built from the combinations of the
 | 
	
	
		
			
				|  | @@ -76,7 +77,7 @@ POST /sales/_bulk?refresh
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  //////////////////////////
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -For instance the following document:
 | 
	
		
			
				|  |  | +For example, consider the following document:
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  [source,js]
 | 
	
		
			
				|  |  |  --------------------------------------------------
 | 
	
	
		
			
				|  | @@ -87,8 +88,8 @@ For instance the following document:
 | 
	
		
			
				|  |  |  --------------------------------------------------
 | 
	
		
			
				|  |  |  // NOTCONSOLE
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -\... creates the following composite buckets when `keyword` and `number` are used as values source
 | 
	
		
			
				|  |  | -for the aggregation:
 | 
	
		
			
				|  |  | +Using `keyword` and `number` as source fields for the aggregation results in
 | 
	
		
			
				|  |  | +the following composite buckets:
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  [source,js]
 | 
	
		
			
				|  |  |  --------------------------------------------------
 | 
	
	
		
			
				|  | @@ -101,15 +102,20 @@ for the aggregation:
 | 
	
		
			
				|  |  |  --------------------------------------------------
 | 
	
		
			
				|  |  |  // NOTCONSOLE
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -==== Values source
 | 
	
		
			
				|  |  | +==== Value sources
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -The `sources` parameter controls the sources that should be used to build the composite buckets.
 | 
	
		
			
				|  |  | -The order that the `sources` are defined is important because it also controls the order
 | 
	
		
			
				|  |  | -the keys are returned.
 | 
	
		
			
				|  |  | +The `sources` parameter defines the source fields to use when building
 | 
	
		
			
				|  |  | +composite buckets. The order that the `sources` are defined controls the order
 | 
	
		
			
				|  |  | +that the keys are returned.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -The name given to each sources must be unique.
 | 
	
		
			
				|  |  | +NOTE: You must use a unique name when defining `sources`.
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -There are three different types of values source:
 | 
	
		
			
				|  |  | +The `sources` parameter can be any of the following types:
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* <<_terms,Terms>>
 | 
	
		
			
				|  |  | +* <<_histogram,Histogram>>
 | 
	
		
			
				|  |  | +* <<_date_histogram,Date histogram>>
 | 
	
		
			
				|  |  | +* <<_geotile_grid,GeoTile grid>>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  [[_terms]]
 | 
	
		
			
				|  |  |  ===== Terms
 | 
	
	
		
			
				|  | @@ -430,10 +436,10 @@ GET /_search
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  --------------------------------------------------
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -===== Mixing different values source
 | 
	
		
			
				|  |  | +===== Mixing different value sources
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -The `sources` parameter accepts an array of values source.
 | 
	
		
			
				|  |  | -It is possible to mix different values source to create composite buckets.
 | 
	
		
			
				|  |  | +The `sources` parameter accepts an array of value sources.
 | 
	
		
			
				|  |  | +It is possible to mix different value sources to create composite buckets.
 | 
	
		
			
				|  |  |  For example:
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  [source,console,id=composite-aggregation-mixing-sources-example]
 | 
	
	
		
			
				|  | @@ -454,7 +460,7 @@ GET /_search
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  --------------------------------------------------
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -This will create composite buckets from the values created by two values source, a `date_histogram` and a `terms`.
 | 
	
		
			
				|  |  | +This will create composite buckets from the values created by two value sources, a `date_histogram` and a `terms`.
 | 
	
		
			
				|  |  |  Each bucket is composed of two values, one for each value source defined in the aggregation.
 | 
	
		
			
				|  |  |  Any type of combinations is allowed and the order in the array is preserved
 | 
	
		
			
				|  |  |  in the composite buckets.
 | 
	
	
		
			
				|  | @@ -542,7 +548,7 @@ first (ascending order, `asc`) or last (descending order, `desc`).
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  The `size` parameter can be set to define how many composite buckets should be returned.
 | 
	
		
			
				|  |  |  Each composite bucket is considered as a single bucket, so setting a size of 10 will return the
 | 
	
		
			
				|  |  | -first 10 composite buckets created from the values source.
 | 
	
		
			
				|  |  | +first 10 composite buckets created from the value sources.
 | 
	
		
			
				|  |  |  The response contains the values for each composite bucket in an array containing the values extracted
 | 
	
		
			
				|  |  |  from each value source. Defaults to `10`.
 | 
	
		
			
				|  |  |  
 |