Каковы правильные настройки Stormcrawler для захвата метатега в индекс? - PullRequest
0 голосов
/ 10 июня 2019

ОБНОВЛЕНИЕ: я понял это. вижу дно ... но не стесняйся поправлять меня, если я что-то пропустил ...

Каковы правильные настройки в crawler-conf.yaml (и в других местах, если необходимо) для информации из следующего мета-тега:

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

для правильного включения в индекс с именем поля 'College' или 'seed'?

Я вижу следующие параметры, которые, возможно, необходимо установить, но пробовал различные варианты их, и данные, похоже, не были захвачены.

in 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 (или любой другой конфигурации), чтобы надежно захватывать данные из метатега, указанного в верхней части этого вопроса, без распространять его на выбранные документы, у которых нет этого метатега?

1 Ответ

1 голос
/ 11 июня 2019

Вот что я разобрался.«parse», на который ссылается «parse.title» в приведенном выше цитируемом коде, является ссылкой на (edit: ключ метатега, который затем извлекается) пользовательской записью в верхнем классе в src/main/resources/parsefilters.json файл.Я вошел туда и добавил строку

"parse.college": "//META[@name=\"college\"]/@content"

ниже тех, которые были там, но все еще в топ-классе.

Затем я изменил ссылку на колледж вindexer.md.mapping прочитать - parse.college=college, перестроить гусеничный ход и запустить его.Затем он начал правильно захватывать тег <meta name="college" content="artdesign"/> и отправлять его в поле college в индексе.

...