More resource efficient analysis wrapping usage

Today, we take great care to try and share the same analyzer instances across shards and indices (global analyzer). The idea is to share the same analyzer so the thread local resource it has will not be allocated per analyzer instance per thread.
The problem is that AnalyzerWrapper keeps its resources on its own per thread storage, and with per field reuse strategy, it causes for per field per thread token stream components to be used. This is very evident with the StandardTokenizer that uses a buffer...
This came out of test with "many fields", where the majority of 1GB heap was consumed by StandardTokenizer instances...
I would make this a non-static inner class. By this you don't need the "wrapper" field (its automatically passed down).

I am not 100% sure, maybe the javac compiler disallows to create inner non-static classes if "this" is not yet useable... If it does not work, ignore this comment :-)