これは一般的なJavaの質問と考えることができますが、わかりやすくするためにLuceneを例として使用しています。Luceneがテキストをトークン化するプロセス
Luceneのさまざまなトークナを使用してテキストをトークン化できます。メインの抽象Tokenizerクラスがあり、それを拡張するさまざまなクラスがあります。 TokenFilterの場合と同じです。
これで、ドキュメントのインデックスを作成するたびに、新しいトークナイザが作成されるようです。質問は、Tokeinzerは単なるユーティリティクラスなので、なぜ静的にしないのですか?例えば、すべての文字を小文字に変換するTokenizerは、それが取得するすべての入力に対してのみ行う静的メソッドを持つことができます。インデックスを作成するすべてのテキストの新しいオブジェクトを作成するポイントは何ですか?
Tokeinzerにはトークン化される入力を含むプライベートフィールドがあります。トークン化プロセスが終了し、新しいトークン化されたテキストが返された直後にオブジェクトが破棄されるため、なぜこのように格納する必要があるのかわかりません。私が考えることができる唯一のものは多分マルチスレッドアクセスでしょうか?
ありがとうございました!
ありがとうございました。これは今、多くの意味があります。 – user431336