Используя Solr 3.5.0 и в моем schema.xml, я использую следующее, чтобы отметить конец предложений и заменить пунктуацию в конце символическим токеном:
<charFilter class="solr.PatternReplaceCharFilterFactory"
pattern="(?<=[^.!?\\s][^.!?]*(?:[.!?](?![']?\s|$)[^.!?]*)*)[.!?]+(?=\\s|$)"
replacement=" monkeysentence"/>
Я не уверен, что это вообще сработает для того, что я хочу, но сначала мне нужно решить проблему экранирования символа '<' в первом ретроспективном просмотре '?<='.
Я получаю следующую ошибку:
org.xml.sax.SAXParseException: The value of attribute "pattern"
associated with an element type "null" must not contain the '<' character.
Я пытался использовать '\' как в:
pattern="(?\<=[^.!?\\s][^.!?]*(?:[.!?](?![']?\s|$)[^.!?]*)*)[.!?]+(?=\\s|$)"
Но получаю ту же ошибку