#How Elasticsearch handles upsert scripts (v 1.7)
Copied code over from https://github.com/elastic/elasticsearch/blob/1.7/src/main/java/org/elasticsearch/action/update/UpdateHelper.java for reference...
public Result prepare(UpdateRequest request, IndexShard indexShard) {
long getDateNS = System.nanoTime();
final GetResult getResult = indexShard.getService().get(request.type(), request.id(),
new String[]{RoutingFieldMapper.NAME, ParentFieldMapper.NAME, TTLFieldMapper.NAME, TimestampFieldMapper.NAME},
true, request.version(), request.versionType(), FetchSourceContext.FETCH_SOURCE, false);