2016-02-11 55 views
0

我有Solr 5.4.1,我試圖索引和存儲HTML文件。我想存儲原始HTML,以便我可以使用它來突出顯示。在Solr中存儲原始HTML文件

有沒有辦法做到這一點?我的更新/提取請求處理程序使用Tika,我相信它是從我的文件中剝離html標記,因此想要避免這種情況用於存儲原始html內容。

在此先感謝

+1

Solr對於數據檢索來說並不好。你有沒有考慮將原始html存儲在另一個地方,比如sql數據庫或其他rdbms?只需將可搜索的文本放在Solr中,然後將頁面標識添加到solr文檔中,然後通過db中的頁面標識查找完整的html。 –

+0

主要問題是我想搜索關鍵字,然後在原始html中突出顯示這些關鍵字。這可能嗎?例如, 。

Hello there this is some keyword content
然後如果我要搜索「關鍵字」Solr會輸出
Hello there this is some keyword content
或類似的東西。 –

+0

Solr無法執行html標籤的動態插入,對吧?你會不會從你的數據庫中獲取原始的HTML,然後在事實之後搜索關鍵字並在那裏插入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標籤的中間,或剪裁結束標記。另一種解決方法是在存儲到Solr之前剝離HTML。

相關問題