0

我正在使用 Storm crawler 中提供的过滤器类研究特定的 XPath 数据提取。我想知道JSoupParserBolt是否利用与过滤器类和文件相关的类,或者我们必须重写过滤器类来提取所需的数据。

此外,我试图了解如何使用crawler_conf.yaml中的indexer.md.filterindexer.md.mapping条目,但由于文档有限,我不清楚其用途。 谁能帮我吗?

4

1 回答 1

0

JSoupParserBolt 调用 parsefilters.json 中定义的ParseFilters原型生成的一个很好的例子说明了你可以用它们做什么。如果您需要进行一些简单的 XPath 提取,您应该可以通过配置com.digitalpebble.stormcrawler.parse.filter.XPathFilter来完成。例如,

"parse.title": [
        "//TITLE",
        "//META[@name=\"title\"]/@content"
     ]

如果在键parse.title下的元数据中找到,将尝试匹配两个 Xpath 表达式并存储任何值。

您当然可以实现自定义 ParseFilters,这个包包含各种可以用作灵感来源的实现。

至于indexer.md配置,请参阅 wiki。基本上,映射允许您重命名元数据键

  indexer.md.mapping:
  - parse.title=title
  - parse.keywords=keywords
  - parse.description=description
  - domain=domain

在上面的示例中,键“parse.title”将被索引为名为“title”的字段。只有映射中列出的元数据将用于索引。

indexer.md.filter有不同的用途。正如Javadoc中所解释的,它用于过滤掉(即跳过索引)在其元数据中具有键+值的文档。

于 2018-03-21T09:30:50.420 回答