Я недавно заметил, что поведение Lucene StandardAnalyzer несколько изменилось с версии 3.1. Конкретно, 3.0 и предыдущие версии распознавали электронную почту, IP-адреса, названия компаний и т. Д. Как отдельные лексические типы, а более поздние версии - нет.
Например, для входного текста: "example@mail.com 127.0.0.1 H & M ", анализатор 3.0 распознает следующие типы:
1: example@mail.com: 0-> 16: <<strong> EMAIL >
2: 127.0.0.1: 17-> 26: <<strong> ВЕДУЩИЙ >
3: ч & м: 27-> 30: <<strong> КОМПАНИЯ >
Однако версия 3.1 и более поздние дают следующий вывод для того же входного текста:
1: пример: 0-> 7: <<strong> АЛЬФАН >
2: mail.com: 8-> 16: <<strong> ALPHANUM >
3: 127.0.0.1: 17-> 26: <<strong> NUM >
Мой вопрос: как я могу реализовать старое поведение StandardAnalyzer с более новой версией библиотеки Lucene? Существуют ли какие-либо стандартные фильтры TokenFilter, которые могут помочь мне достичь этого, или мне нужно реализовать пользовательские фильтры?