Two changes:
1
If we detect that there is a difference in the current mapping and the existing mapping, do not try to immediately create a new index.  Rather, determine whether a new index needs to be created or whether updating the existing index is sufficient. Previously, if the mapping changed, this code would raise an exception.

2
Support indexes with _source turned off.  It can be desirable to have _source turned off because it usually creates a much larger index.  The backend was assuming it would be available and would crash if it was turned off.