2016-06-08 2 views
0

Я пытался индексировать RSS-страницы на Solr, используя «feed» в качестве синтаксического анализатора (и не tika). Теоретически для каждого элемента RSS один документ должен быть создан в Solr. На самом деле, как только индексирование завершено успешно, в задании очистки удаляются все элементы RSS.Apache Nutch не индексирует rss-канал правильно

Мое предположение заключается в том, что не найден URL-адрес элемента RSS в crawlDB, и поэтому он удаляет их из Solr во время чистки. Может ли это быть правильно?

EDIT: Я заметил, что все записи имеют одинаковую «подпись», потому что выборщик так решил , Поэтому деблокировка обозначает их как дубликаты, а очиститель очищает их.

Я пытаюсь изменить это, но я не понимаю, почему он был настроен таким образом.

ответ

1

Плагин подачи в Nutch генерирует несколько документов из файла фида без получения URL-адресов, перечисленных там. Я предполагаю, что он присваивает ту же подпись, что и страница подачи, всем поддокументам, которые, как вы указали, были в результате дедупликации.

Это не должно происходить и явно является ошибкой. Не могли бы вы открыть для него вопрос JIRA?

Вы можете удалить шаг дедупликации из сценария сканирования, чтобы ваши документы сохранялись в индексе.

В качестве альтернативы вы можете написать модифицированную версию плагина, которая просто извлекает исходящие сообщения из фида и позволяет Nutch извлекать поддокументы, как обычно. Таким образом, каждый документ получит свою собственную подпись, и дедупликация будет иметь смысл.

Другая причина, по которой вы предпочли бы, чтобы запись фида могла не содержать весь текст/метаданные вложенного документа.

Как ни странно, я просто добавил ресурс для синтаксического анализа фидов в StormCrawler, в отличие от того, который был в Nutch, он просто обнаруживает исходящие ссылки и получает их позже.

+0

Спасибо, я открою проблему с jira и выберу StormCrawler тоже – rodi

+0

Нет проблем. Не стесняйтесь отмечать мой ответ как полезный и/или решить вашу проблему –

Смежные вопросы