Lucene.Net (バージョン 2.9) を使用しています。ツイート投稿「@name」または「#Note」を保存したい。
Lucene AnalyzerViewer ツール (http://www.codeproject.com/KB/cs/lucene_analysis.aspx?msg=3326095#xx3326095xx) を使用して、さまざまなアナライザーによって生成されたトークンを確認します。
たとえば、このテキストから以下のトークンが生成されます。
- ホワイトスペース アナライザー: [#注:] [演習] [~] [ライブ] [長く。]
- 標準アナライザー: [メモ] [演習] [ライブ] [長時間]
- シンプルなアナライザー: [メモ] [演習] [~] [ライブ] [長く]
「ホワイトスペース アナライザー」はハッシュ タグを保持します。WhitespaceTokenizer と小文字を使用するカスタム アナライザーを作成しました。
カスタム アナライザー コード...
public class CustomAnalyzer : Analyzer
{
public override TokenStream TokenStream(string fieldName, System.IO.TextReader reader)
{
TokenStream result = new Lucene.Net.Analysis.WhitespaceTokenizer(reader);
// Makes sure everything is lower case
result = new LowerCaseFilter(result);
//Return the built token stream.)
return result;
}
}
ただし、カスタム アナライザーは句読点を残します。カスタム アナライザーによって生成されるトークン: [#note:] [excercise,] [to] [live] [longer.]
「#」、「@」タグが保持され、句読点が削除されるフィルターを使用するための提案はありますか?
前もって感謝します。