Как решить проблему с Nutch Readseg, который не создает дамп контента? - PullRequest
0 голосов
/ 30 января 2019

Я использую Nutch 1.4 local на iOS, чтобы сканировать веб-сайт, и дэш readseg dump не возвращает никакой соответствующей информации.Чего мне не хватает?
Я пытаюсь извлечь «категорию» как новые метаданные из URL.Я использую замену для извлечения подстроки из URL.Я могу запустить код и проиндексировать документы в Google Cloud Search.Но это не захват категории.
Для отладки этого конца до конца я хотел бы убедиться, что правильное значение извлекается с помощью Nutch в метаданных категории.Я проверил правильность регулярного выражения с помощью тестера регулярных выражений.Я хочу регистрировать метаданные
значения - URL, категория в журнале или стандартный вывод.Я не вижу соответствующей информации в hadoop.log даже в DEBUG.

$bin/nutch readseg -dump TestCrawl/segments/* segmentAllContent  
SegmentReader: dump segment: TestCrawl/segments/20190128171825 
SegmentReader: done 

logs/hadoop.log -  
2019-01-29 11:40:02,275 INFO  segment.SegmentReader - 
SegmentReader: 
dump segment: TestCrawl/segments/20190128171825 . 
2019-01-29 11:40:02,463 WARN  util.NativeCodeLoader - Unable to 
load  
native-hadoop library for your platform... using builtin-java 
classes where applicable.  

log4j.properties    

    log4j.logger.org.apache.nutch=DEBUG

nutch-site.xml   

<property>  
    <name>index.replace.regexp</name>  
    <value>  
        urlmatch=.*mycompany\.com\/([a-zA-Z0-9-]+)  
        url:category=$1 
    </value>  
</property>    
<property>
    <name>urlmeta.tags</name>
    <value>title,category</value>
    <description>
     test
    </description>
</property>
<property>
   <name>index.parse.md</name>  
 <value>*</value>
 <description> test </description
</property>

1 Ответ

0 голосов
/ 30 января 2019

Команда readseg -dump записывает только все содержимое сегмента в виде простого текста в выходной каталог segmentAllContent.Он не запускает индексатор и, следовательно, не вызывает плагин index-replace.Вы можете использовать команду bin/nutch indexchecker, чтобы проверить, правильно ли настроен плагин.

Обратите внимание, что замена индекса плагина недоступна в Nutch 1.4, она была добавлена ​​с Nutch 1.11.

Пример использования indexchecker для проверки плагина index-replace:

% bin/nutch indexchecker \
   -Dplugin.includes='protocol-okhttp|parse-html|index-(basic|replace|static)' \
   -Dindexingfilter.order='org.apache.nutch.indexer.basic.BasicIndexingFilter org.apache.nutch.indexer.staticfield.StaticFieldIndexer org.apache.nutch.indexer.replace.ReplaceIndexer' \
   -Dindex.static='category:unknown' \
   -Dindex.replace.regexp=$'hostmatch=localhost\ncategory=/.+/intranet/' \
   http://localhost/
...
host :  localhost
id :    http://localhost/
title : Apache2 Ubuntu Default Page: It works
category :      intranet
url :   http://localhost/
...
  • плагин index-static настроен на добавление поля «категория» со значением «unknown»
  • плагин index-replace меняет значение на «интранет», если имя хоста «localhost» (нотация $'...' расширяется \n)
...