2016-02-11 3 views
0

У меня есть Solr 5.4.1, и я пытаюсь индексировать и хранить html-файлы. Я хотел бы сохранить необработанный HTML, чтобы я мог использовать его для выделения.Хранение исходных HTML-файлов в Solr

Есть ли способ сделать это? Мой обработчик запроса на обновление/извлечение использует Tika, который, я считаю, лишает html-теги из моих файлов и поэтому хотел бы избежать этого для хранения сырого содержимого html.

Заранее спасибо

+1

Solr не так хорош для поиска данных. Рассматривали ли вы хранение raw html в другом месте, например, в базе данных sql или другом rdbms? Добавляйте текст для поиска в Solr, затем добавляйте идентификатор страницы в документ solr, а затем просматривайте полный html через идентификатор страницы в своем db. –

+0

Основная проблема заключается в том, что я хочу искать ключевые слова, а затем выделять эти ключевые слова в raw html. Это возможно? Например, .

Hello there this is some keyword content
, а затем, если бы я искал «ключевое слово», Solr выводит
Hello there this is some keyword content
или что-то подобное. –

+0

Solr не может делать динамическую вставку html-меток в любом случае, правильно? Не могли бы вы получить полученный исходный HTML-код из своего db, а затем выполнить поиск ключевого слова после факта и вставить html? –

ответ

1

Самый простой способ для поиска содержимого HTML в Solr является показателем использования HTMLStripCharFilterFactory. Это разбивает HTML-теги (включая атрибуты) на текст во время индекса, то есть вы можете искать текст, не идя по тегам. Сохраненная версия поля будет содержать теги HTML.

<!-- Field type for HTML fields, stripping HTML characters during indexing --> 
<fieldType name="text_html" class="solr.TextField" positionIncrementGap="100"> 
    <analyzer type="index"> 
    <charFilter class="solr.HTMLStripCharFilterFactory"/> 
    <tokenizer class="solr.StandardTokenizerFactory"/> 
    <filter class="solr.LowerCaseFilterFactory"/> 
    </analyzer> 
    <analyzer type="query"> 
    <tokenizer class="solr.StandardTokenizerFactory"/> 
    <filter class="solr.LowerCaseFilterFactory"/> 
    </analyzer> 
</fieldType> 

Однако, это может привести к подсветке разметке вызывая ваши HTML-теги сломаться, либо появляются в середине HTML-тегов, или вырезания закрывающий теги. Альтернативным решением для этого является удаление HTML-кода перед сохранением в Solr.

Смежные вопросы