I agree avoiding materialization is important and I'm surprised that the `Helper` currently materializes if `hasArray` returns false. I just opened a change request for it https://github.com/elasticsearch/elasticsearch/pull/5517 so that it's safe to fallback to it.