要将元标记捕获到索引中,正确的Stormcrawler设置是什么?

时间:2019-06-10 12:36:02

标签: elasticsearch stormcrawler

UPDATE:我想通了。见底...但是如果我错过任何事情,请随时纠正我...

crawler-conf.yaml(以及其他地方,如果需要)中,以下元标记中的信息的正确设置是什么:

<meta name="college" content="artdesign"/>

要正确地捕获到字段名称为“学院”或“种子”的索引中?

我看到可能需要设置以下设置,但尝试了各种设置,但似乎无法捕获数据。

crawler-conf.yaml中:

# lists the metadata to persist to storage
  # these are not transfered to the outlinks
  metadata.persist:
   - _redirTo
   - error.cause
   - error.source
   - isSitemap
   - isFeed
   - college
   - seed

不确定“持久存储”是否意味着进入索引?

crawler-conf.yaml中的另一个选项是:

# configuration for the classes extending AbstractIndexerBolt
  indexer.md.mapping:
  - parse.title=title
  - parse.keywords=keywords
  - parse.description=description
  - domain=domain
  - college=college
  - college=seed

我以前曾问过这样一个事实,即一段时间以来,“种子”的某些值似乎正在传播到所获取的没有元标记的文档中。该设置为:

  # metadata to transfer to the outlinks
  # used by Fetcher for redirections, sitemapparser, etc...
  # these are also persisted for the parent document (see below)
  # metadata.transfer:
  # - seed

因此,如标题中所述,我的问题是如何在crawler-conf.yaml(或任何其他配置)中配置这些选项,以可靠地从此问题顶部列出的meta标签捕获数据,而不会将其传播到没有该meta标签的提取文档中?

1 个答案:

答案 0 :(得分:1)

这是我整理的内容。上面引用的代码中'parse.title'中引用的'parse'是对{编辑的meta标签的键的引用,然后由{{ 1}}文件。我去了那里并添加了一个

src/main/resources/parsefilters.json

行的下方,但仍在顶级类别中。

然后,我将参考文献"parse.college": "//META[@name=\"college\"]/@content"下的大学名称更改为indexer.md.mapping,并重建了搜寻器并运行了它。然后,它开始正确抓取- parse.college=college标签并将其发送到索引中的<meta name="college" content="artdesign"/>字段。