Вы можете значительно расширить токенизацию StandardTokenizer, используя API Lufne CharFilter (и, возможно, TokenFilters, в зависимости от того, как вы хотите, чтобы поиск работал).
В конечном счете, если StandardTokenizer полностью отличается от того, чтоесли вы хотите, то это неправильный токенизатор, но если его закрыть, это может быть намного проще.
CharFilter - это, по сути, FilterReader, который позволяет вам изменять текст перед запуском Tokenizer.Он также отслеживает корректировки смещения, так что выделение будет по-прежнему работать!
для добавления CharFilters, самый простой способ - расширить ReusableAnalyzerBase и переопределить его метод initReader, обернув входящий считыватель требуемыми CharFilters.
Возможно, вы захотите взглянуть на MappingCharFilter как на начало, оно позволяет заранее определить некоторые сопоставления для обработки вашего специального синтаксиса Twitter.Вот несколько примеров / идей: http://markmail.org/message/abo2hysvfy2clxed