我想为HTML内容创建一个全文搜索索引(更具体地说:XHTML格式的EPUB章节)。像这样:
...
<p>Lorem ipsum <b>dolor</b> sit amet, consectetur adipiscing elit.</p>
...
问题是我需要以某种方式匹配文本的位置(如xpath)和搜索结果,因为我需要将阅读器软件定位到正确的位置。 我需要像突出显示功能这样的功能,但不是突出显示的文本,而是给出匹配的突出显示位置。 所以,如果我搜索&#34; dolor&#34;它给出了这样的东西:
matches:[
...
{"match":"dolor", "xpath":"//*[@id="lipsum"]/p[1]/b"}
...
]
标准场景(我随处可见)像带有过滤器的条带html字符,然后是标记化等,这里不适用,因为它在第一步中丢失了位置信息。
有什么建议吗? Solr或ElasticSearch甚至可以实现这一点吗?谢谢!
答案 0 :(得分:0)
你的问题是关于xhtml-Dokument突出显示的xpath。
我不知道solr或elasticsearch中正在运行的解决方案。 eXtensible Text Framework('OFF')中有一些非常相似的东西,它建立在Lucene的旧版本之上。 在XTF中,您可以在原始xml-File中获取highlighting as tags。所以写一个xsl-Transformation来生成相应的xpath应该很容易。
简而言之,主要思想是将EPUB-book拆分为重叠块,并将xml-structure作为特殊字符存储在索引和存储字段中。通过突出显示信息,您可以重新转换原始xml结构以查找xpath。