当前位置: 首页 > 面试题库 >

如何索引html内容,保持位置(如xpath,css选择器等)

颛孙轩昂
2023-03-14
问题内容

我想为HTML内容创建全文搜索索引(更具体地说:XHTML格式的EPUB章节)。像这样:

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

问题是我需要以某种方式将匹配文本的位置(例如xpath)与搜索结果匹配,因为我需要将阅读器软件放置在正确的位置。我需要像突出显示功能这样的功能,但是要提供匹配项的高亮位置,而不是突出显示的文本。因此,如果我搜索“
dolor”,它会返回如下信息:

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

标准场景(我到处都可以找到),例如带过滤器的html字符,然后标记化等,在这里不适用,因为它在第一步中会丢失位置信息。

有什么建议?Solr或ElasticSearch甚至有可能吗?谢谢!


问题答案:

您的问题是关于突出显示xhtml-Dokument的结果xpath。

我不知道在solr或elasticsearch中正在运行的解决方案。在Lucene(旧版本)的基础上,可扩展文本框架(“
XTF”)的内容非常相似。在XTF中,您可以在原始xml文件中将高亮显示为标签。因此,编写xsl-Transformation生成相应的xpath应该很容易。

简而言之,主要思想是将EPUB-
book分成重叠的块,并将xml结构作为特殊字符存储在已索引和存储的字段中。通过突出显示信息,您可以然后重新转换原始xml结构以找到您的xpath。



 类似资料:
  • 问题内容: 我在a中有一个长文本,其中包含define: HTML: CSS: 我怎么能迫使字符串留在一行中(即在“溢出”中间被切掉)? 我尝试使用,但没有帮助。 问题答案: 尝试这个:

  • 问题内容: 我在selenium测试中有以下xpath语句: 它达到了我想要的,但是我的测试在IE6中非常缓慢。有人知道我将如何做与CSS选择器相同的选择器吗?我想我了解如何执行上述操作,但text()=“ IPODate”部分除外。 以下是我要从中选择的表格示例: ....很多很多行 …还有很多行… 在此示例中,只有一行具有IPODate单元。 问题答案: CSS定位器用于其中包含文本IPODa

  • 我不知道如何使用Sizzle,那么我该如何使用它呢? 请给我提供一些示例代码。 谢谢Jakobaindreas1 P、 我总是问这样的问题

  • 问题内容: 当前,我具有以下页面对象字段: 有没有办法替换该字段的XPath定位器,而是使用CSS选择器? 其动机来自样式指南和建议不要使用XPaths。 据我了解,从上下文中的当前元素开始,不可能有一个CSS选择器进入下一个同级对象。但是,还有其他选择吗? 问题答案: 从不对任何事情说是愚蠢的。我强烈支持CSS选择器,因为按ID,CSS选择器等几乎所有内容来查找元素…比XPath快。但是…同时我

  • 你需要在你个人的需要和团队的需要间权衡,选择需要做工程中的哪个部分。你应该做你最擅长的东西,但是也要试着去找一种方式来激励自己,不是通过承担更多的工作而是通过练习新的技能。领导才能和交流能力比技术能力更重要。如果你非常强大,承担最困难或最有风险的任务,在工程中尽可能早地完成这部分,以此减少风险。

  • 问题内容: 我想基于内部HTML使用CSS选择器设置仅第二个样式(innerHTML2)。这可能吗?我试过使用,但似乎不起作用。 问题答案: 使用CSS不可能做到这一点。但是,您可以使用jQuery。