使用脚本将段落解析为 Solr 中的单独文档

Parsing paragraphs into separate documents in Solr using script

我想使用 Nutch 抓取网站列表,然后将每个文档分解成段落并将它们发送到 Solr 进行索引。

我一直在使用以下脚本来自动执行 crawling/fetching/parsing/indexing 的过程:

bin/crawl -i -D solr.server.url=http://localhost:8983/solr/#/nutch -s ./urls/ Crawl 2

我的想法是在这个工作流程的中间附加一个脚本(可能是 Nutch 的解析阶段?),它会打断段落,比如 paragraphs.split()。我怎样才能做到这一点?

此外,我需要为每个段落添加一个字段,以显示其在文档中的数字位置,以及它属于哪个章节。章节是文档中的一个h2标签。

目前,您的问题没有一个简单的答案。为此,您需要自定义代码,具体来说,Nutch 有两个不同的插件来处理 HTML 代码 parse-htmlparse-tika 的解析。这些插件专注于提取文本内容,而不是从 HTML 文档中提取大量结构化数据。

您需要有一个自定义解析器 (HtmlParserPugin) 插件,它将以自定义方式处理 HTML 文档中的段落节点(提取内容和位置信息)。

您需要的另一个组件是在 Solr 中对数据建模,因为您需要在同一文档中保持段落的位置,您还需要以可在 Solr 中搜索的方式发送此数据,也许使用嵌套文档(这 确实 取决于您打算如何使用数据)。

例如,您可以查看 this plugin,它实现了使用来自 HTML.

的任意 X 路径表达式提取数据的自定义逻辑