|  | @@ -0,0 +1,31 @@
 | 
	
		
			
				|  |  | +[discrete]
 | 
	
		
			
				|  |  | +[[search-fields]]
 | 
	
		
			
				|  |  | +=== Return fields in a search
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +By default, each hit in the search response includes the document
 | 
	
		
			
				|  |  | +<<mapping-source-field,`_source`>>, which is the entire JSON object that was
 | 
	
		
			
				|  |  | +provided when indexing the document. If you only need certain fields in the
 | 
	
		
			
				|  |  | +search response, you can use
 | 
	
		
			
				|  |  | +<<request-body-search-source-filtering,source filtering>> to restrict what
 | 
	
		
			
				|  |  | +parts of the source are returned.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Returning fields using only the document source has some limitations:
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* The `_source` field does not include <<multi-fields, multi-fields>> or
 | 
	
		
			
				|  |  | +<<alias, field aliases>>. Likewise, a field in the source does not contain
 | 
	
		
			
				|  |  | +values copied using the <<copy-to,`copy_to`>> mapping parameter.
 | 
	
		
			
				|  |  | +* Since the `_source` is stored as a single field in Lucene, the whole source
 | 
	
		
			
				|  |  | +object must be loaded and parsed, even if only a small number of fields are
 | 
	
		
			
				|  |  | +needed.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +{es} supports some alternative methods for returning fields that help avoid
 | 
	
		
			
				|  |  | +these downsides:
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* The <<request-body-search-docvalue-fields, `docvalue_fields`>>
 | 
	
		
			
				|  |  | +parameter allows for loading fields from their doc values. This can be a good
 | 
	
		
			
				|  |  | +choice when returning a fairly small number of fields that support doc values,
 | 
	
		
			
				|  |  | +such as keywords and dates.
 | 
	
		
			
				|  |  | +* It's also possible to store an individual field's values by using the
 | 
	
		
			
				|  |  | +<<mapping-store,`store`>> mapping option. You can use the
 | 
	
		
			
				|  |  | +<<request-body-search-stored-fields, `stored_fields`>> parameter to return
 | 
	
		
			
				|  |  | +these stored values in the search response.
 |