anchor.diff:  
   Note that the `Tap` configuration is merged with the global one so one can mix and match accordingly - for example specify the defaults in the global configuration and only declare the specifics on the `Tap` instance. Additionally, for maximum flexibility `EsTap` allows multiple arguments to be passed in, including a `Properties` object for the full range of options.
   
  +[[cascading-alias]]
  +[float]
  +=== Mapping
  +
  +By default, {eh} uses the Cascading tuple to map the data in {es}, using both the field names and types in the process. There are cases however when the field names cannot be used directly with {es} (common case when working with an existing flow). For such cases, one can use the `es.mapping.names` setting which accepts a comma-separated list of names mapping in the following format: `Cascading field name`:`Elasticsearch field name`
  +
  +To wit:
  +
  +[source,java]
  +----
  +Properties myTapCfg = new Properties();
  +myTapCfg.set("es.mapping.names", "date:@timestamp");	<1>
  +Tap myTap = new EsTap(..., myTapCfg);
  +----
  +
  +<1> Maps Cascading field `date` in {es} to `@timestamp`
  +
  +TIP: {es} accepts only lower-case field names and, as such, {eh} will always convert Cascading column names to lower-case. This can pose issues when dealing with upper-case fields due to case sensitivity.
   
   [[cascading-writing]]
   [float]
  
positive.code: (see the {mr} <<type-conversion-writable,conversion>> section) though we recommend using the same types (if possible) in both cases to avoid the overhead of maintaining two different versions.
  
  IMPORTANT: If automatic index creation is used, please review <<auto-mapping-type-loss,this>> section for more information.
  
negative.code: http://www.cascading.org/[Cascading] is a data processing API and processing query planner used for defining, sharing, and executing data-processing workflows on a single computing node or distributed computing cluster. 
  ____
  
  Cascading abstracts the {mr} API and focuses on http://docs.cascading.org/cascading/2.5/userguide/htmlsingle/#N201FA[data processing] 
  in terms of 'tuples' http://docs.cascading.org/cascading/2.5/userguide/htmlsingle/#N20C4D['flowing'] through http://docs.cascading.org/cascading/2.5/userguide/htmlsingle/#N2024D['pipes'] between http://docs.cascading.org/cascading/2.5/userguide/htmlsingle/#N2087A['taps'], 
  from input (called `SourceTap`) to output (named `SinkTap`). As the data flows, various operations are applied to the tuple; the whole system being transformed to {mr} operations at runtime.
  With {eh}, {es} can be plugged into Cascading flows as a `SourceTap` or `SinkTap` through `EsTap`, data to/from {es} being transparently converted from/to Cascading `tuple`s.
  
  ****
  .Local or Hadoop mode?
  Cascading supports two 'execution' modes or http://docs.cascading.org/cascading/2.5/userguide/htmlsingle/#N2081B[platforms]:
  
  Local:: for unit testing and quick POCs. Everything runs only on the local machine and file-system.
  Hadoop:: production mode - connects to a proper Hadoop (1.x or 2.x) cluster (as oppose to the 'local' mode which is running just on the local machine).
  
  {eh} supports *both* platforms automatically. One does not have to choose between different classes, `EsTap` can be used as both `sink` or `source`, in both modes transparently.
  ****
  