Can I make Elasticsearch stringify an inner object?

I have the classic structured name problem.
"name":{ "first":"washington", "last":"irving" }
I'd like to be able to do a phrase search for "washington irving" and not get "irving washington".

The standard solution is to copy the "first" and "last" fields into another field and index that, but there's no guarantee of the order and proximity becomes unreliable. What I'd like is for my tokenizer to be passed the stringified "name" and let me pull the words out in the order I want.

Is there any way to make this happen?