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",

Другие вопросы по тегам