Lucene 使用tika从内容提取中排除菜单

Lucene 使用tika从内容提取中排除菜单,lucene,html-parsing,apache-tika,Lucene,Html Parsing,Apache Tika,我生成包含菜单和内容部分的html文档。然后我想提取这些文档的内容,将其提供给lucene索引。但是,我想从内容提取中排除菜单,因此只对内容进行索引 <div class="menu">my menu goes here</div> <div class="content">my content goes here</div> 我的菜单在这里 我的内容在这里 使用apache tika实现这一点最简单的方法是什么?您可以使用解析器将html解析

我生成包含菜单和内容部分的html文档。然后我想提取这些文档的内容,将其提供给lucene索引。但是,我想从内容提取中排除菜单,因此只对内容进行索引

<div class="menu">my menu goes here</div>
<div class="content">my content goes here</div>
我的菜单在这里
我的内容在这里

使用apache tika实现这一点最简单的方法是什么?

您可以使用解析器将html解析为xhtml dom对象,并删除包含属性class=“menu”的div标记。

您可以使用解析器将html解析为xhtml dom对象,并删除包含属性class=“menu”的div标记。

作为一个更通用的解决方案(不仅仅是针对你的特定菜单)我建议你看看那些从页面(菜单、导航等)中删除不感兴趣的部分的方法


我知道,看一看,您可能可以将其集成到您的场景中。

作为一个更通用的解决方案(不仅仅针对您特定的菜单),我建议您考虑从页面(菜单、导航等)中删除不感兴趣的部分


我知道,看一看,您可能可以将其集成到您的场景中。

看一看,通过指定解析DIV是否安全,在这种情况下它会被忽略,从而指定在HTML解析期间如何处理DIV。对于您的问题,您可以在覆盖方法中使用一些逻辑,这些方法只忽略带有attrib的DIV元素ute值“菜单”(即告诉TIKA解析器该DIV不安全解析).

通过指定DIV是否可以安全解析,来了解在HTML解析过程中,哪些方法指定了如何处理DIV,在这种情况下,它会被忽略。对于您的问题,您可以在覆盖方法中使用一些逻辑,这些方法只忽略属性值为“menu”的DIV元素(即,告诉TIKA解析器此DIV不可以安全解析).

你能给我多一点信息吗。你是说Tika解析器还是其他DOM解析器?我认为Tika可以与SAX解析器一起工作。是的,只需使用新的HtmlParser()。parse(…)apache tika的SAX处理程序。你能给我一点更多的信息吗。你是指tika解析器还是其他DOM解析器?我认为tika可以与SAX解析器一起工作。是的,只需使用apache tika的新HtmlParser()。parse(..)和SAX处理程序。