Я использую 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:] [упражнение,] [чтобы] [жить] [дольше.]
Любые предложения по использованию фильтра, в котором сохраняются теги «#», «@» и удаляются знаки препинания?
Заранее спасибо.