Я использую инструмент "Escape Tool" из стандартного набора инструментов Solr. Я использую его для отображения текстовых полей, в которые могут быть встроены HTML-теги. Я делаю это на уровне документа интерфейса скорости. То есть Я убегаю прямо перед тем, как он отобразится.
Я хочу включить подсветку, и успешно сделал это через solrconfig:
<str name="hl">false</str>
<str name="hl.fl">*</str>
<str name="hl.usePhraseHighlighter">true</str>
<str name="hl.requireFieldMatch">true</str>
<str name="hl.regex.maxAnalyzedChars">10000</str>
<str name="hl.useFastVectorHighlighter">true</str>
К сожалению, escape-инструмент экранирует тег по умолчанию (em), поэтому он не работает так, как предполагалось. Перемещение процедуры выхода до того, как произойдет выделение, звучит как оптимальное решение. Я не слишком знаком с порядком вещей, применяемых пользовательским интерфейсом при выводе.
Один из способов сделать это - экранировать поля при вставке: http://velocity.apache.org/engine/devel/webapps.html с помощью org.apache.velocity.app.event.implement.EscapeHtmlReference. Но мне было интересно, есть ли способ сделать это без изменения сохраненного содержимого?
Спасибо!