我正在使用 Storm crawler 中提供的过滤器类研究特定的 XPath 数据提取。我想知道JSoupParserBolt是否利用与过滤器类和文件相关的类,或者我们必须重写过滤器类来提取所需的数据。
此外,我试图了解如何使用crawler_conf.yaml中的indexer.md.filter和indexer.md.mapping条目,但由于文档有限,我不清楚其用途。
谁能帮我吗?
问问题
133 次
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 回答