2016-05-20 3 views
0

новичок в apache nutch - пишут клиент, чтобы использовать его через REST. преуспеть во всех шагах (INJECT, FETCH ...) - на последнем шаге - при попытке индексирования в solr - он не может передать параметр. Запрос (я форматировал его в каком-то сайте)apache nutch to index to solr via REST

{ 
    "args": { 
    "batch": "1463743197862", 
    "crawlId": "sample-crawl-01", 
    "solr.server.url": "http:\/\/x.x.x.x:8081\/solr\/" 
    }, 
    "confId": "default", 
    "type": "INDEX", 
    "crawlId": "sample-crawl-01" 
} 

В Nutch журналы:

java.lang.Exception: java.lang.RuntimeException: Missing SOLR URL. Should be set via -D solr.server.url 
SOLRIndexWriter 
     solr.server.url : URL of the SOLR instance (mandatory) 
     solr.commit.size : buffer size when sending to SOLR (default 1000) 
     solr.mapping.file : name of the mapping file for fields (default solrindex-mapping.xml) 
     solr.auth : use authentication (default false) 
     solr.auth.username : username for authentication 
     solr.auth.password : password for authentication 
     at org.apache.hadoop.mapred.LocalJobRunner$Job.runTasks(LocalJobRunner.java:462) 
     at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:522) 

Было ли это реализовано? Параметр переходит в плагин solr?

ответ

1

Вам необходимо создать/обновить конфигурацию с помощью /config/create/ конечной точки с запросом POST и полезной нагрузкой, аналогичной:

{ 
    "configId":"solr-config", 
    "force":"true", 
    "params":{"solr.server.url":"http://127.0.0.1:8983/solr/"} 
} 

В этом случае я создаю новую конфигурацию и установив параметр solr.server.url. Вы можете проверить это работает с запросом GET в /config/solr-config (solr-config это ранее указано configId), вывод должен содержать все параметры по умолчанию, см https://gist.github.com/jorgelbg/689b1d66d116fa55a1ee14d7193d71b4 для вывода на пример/по умолчанию. Если в возвращенном JSON все нормально работает, вы должны увидеть опцию solr.server.url с желаемым значением https://gist.github.com/jorgelbg/689b1d66d116fa55a1ee14d7193d71b4#file-nutch-solr-config-json-L464.

После этого просто нажмите /job/create конечную точку для создания нового INDEX задания, полезная нагрузка должна быть чем-то вроде:

{ 
    "type":"INDEX", 
    "confId":"solr-config", 
    "crawlId":"crawl01", 
    "args": {} 
} 

Идея заключается в том, что нужно вам передать configId, созданный с solr.server.url указанной вдоль с crawlId и другими аргументами. Это должно вернуть что-то похожее на:

{ 
    "id": "crawl01-solr-config-INDEX-1252914231", 
    "type": "INDEX", 
    "confId": "solr-config", 
    "args": {}, 
    "result": null, 
    "state": "RUNNING", 
    "msg": "OK", 
    "crawlId": "crawl01" 
} 

Bottom линию вы должны создать новую конфигурацию с solr.server.url выставиться вместо того, чтобы указать его через args ключ в полезной нагрузке JSON.