最近、バージョン 3.1 以降、Lucene StandardAnalyzer の動作が多少変更されていることに気付きました。具体的には、3.0 以前のバージョンでは電子メール、IP アドレス、会社名などを個別の字句タイプとして認識していましたが、それ以降のバージョンでは認識しませんでした。
たとえば、入力テキスト「example@mail.com 127.0.0.1 H&M」の場合、3.0 アナライザーは次のタイプを認識します。
1: example@mail.com: 0->16: <メールアドレス>
2: 127.0.0.1: 17->26: <ホスト>
3: h&m: 27->30: <会社名>
ただし、バージョン 3.1 以降では、同じ入力テキストに対して次の出力が得られます。
1: 例: 0->7: < ALPHANUM >
2: mail.com: 8->16: < ALPHANUM >
3: 127.0.0.1: 17->26: <数値>
私の質問は、新しいバージョンの Lucene ライブラリで古い StandardAnalyzer の動作を実装するにはどうすればよいですか? これを実現するのに役立つ標準の TokenFilters はありますか、それともカスタム フィルターを実装する必要がありますか?