почему nutch индексирует неправильную коллекцию solr, даже если установлен параметр solr.server.url?

#solr #nutch

#solr #nutch

Вопрос:

интегрируйте nutch 1.15 с solr8.0, но когда я использую следующую команду

 nutch/bin/crawl -i -D solr.server.url=http://192.168.199.109:8983/solr/csdn -s ./csdn-seed/ ./data/csdn 1
  

для индексации данных обхода из nutch в solr он выдает исключение в hadoop.log

 2019-03-23 02:03:07,491 WARN  mapred.LocalJobRunner - job_local1877827743_0001
java.lang.Exception: org.apache.solr.client.solrj.impl.HttpSolrClient$RemoteSolrException: Error from server at http://localhost:8983/solr/nutch: Expected mime type application/octet-stream but got text/html. <html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
<title>Error 404 Not Found</title>
</head>
<body><h2>HTTP ERROR 404</h2>
<p>Problem accessing /solr/nutch/update. Reason:
<pre>    Not Found</pre></p>
</body>
</html>

    at org.apache.hadoop.mapred.LocalJobRunner$Job.runTasks(LocalJobRunner.java:462)
    at org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:529)
Caused by: org.apache.solr.client.solrj.impl.HttpSolrClient$RemoteSolrException: Error from server at http://localhost:8983/solr/nutch: Expected mime type application/octet-stream but got text/html. <html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
<title>Error 404 Not Found</title>
</head>
<body><h2>HTTP ERROR 404</h2>
<p>Problem accessing /solr/nutch/update. Reason:
<pre>    Not Found</pre></p>
</body>
</html>
  

но на самом деле, я установил solr.server.url в / solr / csdn, не так ли? но почему он сказал мне, что он индексирует в / solr / nutch?

Ответ №1:

Способ настройки плагинов индексатора изменился с Nutch 1.15: все плагины индексатора теперь настроены в одном XML-файле (conf/index-writers.xml ), установка или перезапись параметров конфигурации через свойства Nutch больше невозможны. Смотрите https://wiki.apache.org/nutch/IndexWriters как настроить URL сервера Solr. Это критическое изменение было необходимо, чтобы разрешить несколько индексаторов одного типа, например, несколько экземпляров Solr.