私は Lucene 2.9 とやり直し tokenstream API の違いを調べてきましたが、古いものと比べて特に醜いのは、トークンを再利用する場合に新しいものを返すか、指定された値を再入力するだけだと思います。
私はプロファイリングを行っていませんが、MAP を使用して属性を格納することは効率的ではないようで、値などを保持する新しい値の型を作成する方が簡単です。TokenStream と属性のものは、ほとんど必要のないオブジェクト プールのように見えます最近では、テキストのトークンのような単純な値の型が対象です。