2016-02-07 53 views
1

我想爲HTML內容(更具體而言:爲XHTML格式的EPUB章節)創建全文搜索索引。就像這樣:如何索引html內容,保留位置(如xpath,css選擇器等)

... 
<p>Lorem ipsum <b>dolor</b> sit amet, consectetur adipiscing elit.</p> 
... 

的問題是,我需要以某種方式匹配的文本與搜索結果中的排名(例如Xpath),因爲我需要的閱讀器軟件定位到正確的地方。 我需要像突出顯示功能那樣的功能,但不是突出顯示的文本,而是給出匹配的「突出顯示位置」。 所以,如果我搜索「悲」它給回是這樣的:

matches:[ 
... 
    {"match":"dolor", "xpath":"//*[@id="lipsum"]/p[1]/b"} 
... 
] 

標準的情況下(我發現到處都是),如去除HTML字符與過濾,然後記號化等,不適用於這裏,因爲它在第一步中丟失了位置信息。

有什麼建議嗎?甚至可以使用Solr或ElasticSearch?謝謝!

回答

0

你的問題是關於xpath作爲xhtml-Dokument突出顯示的結果。

我不知道在solr或elasticsearch中運行的解決方案。 eXtensible Text Framework('XTF')中有一些非常相似的東西,它構建於Lucene的(舊版本)上。 在XTF中,您可以在原始xml文件中獲得highlighting as tags。所以寫一個xsl-Transformation應該很容易生成相應的xpath。

簡而言之,主要思想是將EPUB-book分成重疊塊,並將xml結構作爲特殊字符存儲在索引和存儲字段中。通過突出顯示信息,您可以重新轉換原始xml結構以查找您的xpath。