HTMLStripCharFilterFactory @ Solr 3.4 вырезает HTML для возвращенных полей?
Я использую CF10, который должен использовать Solr 3.4 в соответствии с corporatezen.com/2013/11/updating-solr-engine-coldfusion. я добавил <charFilter class="solr.HTMLStripCharFilterFactory"/>
в <fieldType name="text">
но итоговое поле в результатах поиска по-прежнему содержит HTML. Есть идеи почему?
<field name="summary" type="text" indexed="false" stored="true" required="false" />
http://localhost:8985/solr/test/admin/schema.jsp показывает:
Поле: сводка Тип поля: ТЕКСТ
Свойства: Tokenized, Хранится
Схема: токенизированная, хранимая
Разрыв приращения позиции: 100
Анализатор индекса: org.apache.solr.analysis.TokenizerChain ДЕТАЛИ
Чар Фильтры:
org.apache.solr.analysis.HTMLStripCharFilterFactory args:{luceneMatchVersion: LUCENE_24 } Класс токенизатора: org.apache.solr.analysis.WhitespaceTokenizerFactory
Фильтры:
org.apache.solr.analysis.StopFilterFactory args: {Words: Stopwords.txt ignoreCase: true enablePositionIncrements: true LUCENE_24 generateWordParts: 1 catenateAll: 0 catenateNumbers: 1} org.apache.solr.analysis.LowerCaseFilterFactory args: {luceneMatchVersion: LUCENE_24 } org.apache.solr.analysis.EnglishPorterFilterFacters_Love_LoveTex: LugNec: LEGEN: LUCNUE: LUCTENG_TOWN_LUSG_TUNG_TOWN_LOG_TENG_TOWN_LOG_NT_T_LEGE_TUNG_TUNG_TOWN apache.solr.analysis.RemoveDuplicatesTokenFilterFactory args:{luceneMatchVersion: LUCENE_24 } Анализатор запросов: org.apache.solr.analysis.TokenizerChain ДЕТАЛИ
Чар Фильтры:
org.apache.solr.analysis.HTMLStripCharFilterFactory args:{luceneMatchVersion: LUCENE_24 } Класс токенизатора: org.apache.solr.analysis.WhitespaceTokenizerFactory
Фильтры:
org.apache.solr.analysis.SynonymFilterFactory args: {синонимы: synonyms.txt раскрыть: true ignoreCase: true luceneMatchVersion: LUCENE_24 } org.apache.solr.analysis.StopFilterFactory args:{words: stopwords.txt ignure LureNecure } org. } org.apache.solr.analysis.EnglishPorterFilterFactory args: {protect: protwords.txt luceneMatchVersion: LUCENE_24 } org.apache.solr.analysis.RemoveDuplicatesTokenFilterFactory args: {luceneMatchENEersion: LUC:
1 ответ
Вы должны различать сохраненное и проиндексированное. Фильтр, который вы добавили в поле, изменит токены, сохраненные в индексе Солра, для поиска, но не сохраненные значения для отображения.
Solr сохраняет две версии поля *. Один хранится один. Это оригинальная часть текста, в вашем случае с HTML. Другой - индексная версия. Там была применена вся магия анализа текста.
Затем, когда вы выполняете поиск, индекс используется для поиска, какие документы создали совпадение. При отображении результата сохраненная версия представляется вам.
* Конечно, только в том случае, если вы включили stored="true"
а также indexed="true"
,