jsoupparserbolt是否有内置的实现来使用parsefilters.json文件及其关联的类?

yws3nbqq  于 2021-06-24  发布在  Storm
关注(0)|答案(1)|浏览(310)

我正在研究使用storm crawler中提供的过滤器类提取特定的xpath数据。我想知道jsoupparserbolt是利用与过滤器类和文件相关联的类,还是我们必须重写过滤器类来提取所需的数据。
此外,我还试图了解如何使用来自crawler_conf.yaml的indexer.md.filter和indexer.md.mapping条目,但由于文档有限,我不清楚如何使用。
有人能帮我吗?

41zrol4v

41zrol4v1#

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

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

将尝试匹配两个xpath表达式,并存储在parse.title键下的元数据中找到的值。
当然,您可以实现自定义的parsefilters,这个包包含各种实现,您可以将它们作为灵感的来源。
至于indexer.md配置,请参见wiki。基本上,Map允许您重命名元数据键

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

在上面的示例中,键“parse.title”将作为名为“title”的字段编制索引。只有Map中列出的元数据将用于索引。
indexer.md.filter有不同的用途。正如javadoc中所解释的,它用于过滤(即跳过索引)元数据中具有key+值的文档。

相关问题