Я использую Lucene.Net (версия 2.9). Я хотел бы сохранить пост в Твиттере «@name» или «#Note».
Использование инструмента Lucene AnalyzerViewer (http://www.codeproject.com/KB/cs/lucene_analysis.aspx?msg=3326095#xx3326095xx) для просмотра токенов, созданных другим анализатором.
Например, токены, производимые ниже из этого текста: «# Примечание: упражнение, чтобы жить дольше».
- Анализатор пробелов: [# Примечание:] [Упражнение, [до] [вживую] [дольше.]
- Стандартный анализатор: [примечание] [упражнение] [живой] [дольше]
- Простой анализатор: [примечание] [упражнения] [до] [вживую] [дольше]
«Whitespace Analyzer» сохраняет хеш-теги. Я создал собственный анализатор, который использует 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:] [упражнения,] [в] [вживую] [длиннее.]
Есть предложения по использованию фильтра, в котором сохраняются теги '#', '@' и удаляются знаки препинания?
Заранее спасибо.