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|$)"
しかし、同じエラーが発生します。