问题描述
我想使用Nutch搜寻站点列表,然后将每个文档分解为多个段落,然后将它们发送给Solr进行索引。
bin/crawl -i -D solr.server.url=http://localhost:8983/solr/#/nutch -s ./urls/ Crawl 2
我的想法是在此工作流程的中间附加一个脚本(可能是Nutch的解析阶段?),该脚本会破坏段落,例如paragraphs.split()
。我该怎么办?
此外,我需要在每个段落中添加一个字段,以显示其在文档中的数字位置以及该字段所属的章节。该章是文档中的h2标签。
解决方法
当前,对您的问题没有一个很简单的答案。为此,您需要自定义代码,特别是Nutch有两个不同的插件来处理HTML代码parse-html
和parse-tika
的解析。这些插件专注于提取文本内容,而不是从HTML文档中提取太多结构化数据。
您需要有一个自定义解析器(HtmlParserPugin
)插件,该插件将以自定义方式(提取内容和位置信息)处理HTML文档中的段落节点。
您需要的另一个组件是在Solr中对数据建模,因为您需要将段落的位置保持在同一文档中,所以您还需要以在Solr中可搜索的方式发送此数据使用嵌套文档(此确实取决于您打算如何使用数据)。
例如,您可以看看this plugin,它实现了自定义逻辑,该逻辑使用来自HTML的任意X Path表达式提取数据。