我正在使用 Apache Nutch 爬虫并遵循https://wiki.apache.org/nutch/NutchTutorial。但是当我建立索引时,出现如下错误。
段目录已完成:crawl/segments/2xxxxxxxxxxxxx。
-filer 处的输入路径不是一个段...跳过
索引器:开始于 2019-04-02 14:16:21
索引器:删除已消失的文档:true
索引器:URL 过滤:false
索引器:URL 规范化:true
未配置任何交换。文档将被路由至所有索引编写器。
活动 IndexWriters : SOLRIndexWriter type :服务器类型。可以是:“cloud”、“concurrent”、“http”或“lb” url : SOLR 实例的 URL 或 Zookeeper 仲裁的 URL commitSize :发送到 SOLR 时的缓冲区大小(默认为 1000) auth :使用身份验证(默认为 false) username :身份验证的用户名 password :身份验证的密码
索引 1/1 个文档 删除 0 个文档 索引作业未成功,作业状态:FAILED,原因:NA 索引器:java.lang.RuntimeException:索引作业未成功,作业状态:FAILED,原因:NA 在 org.apache.nutch.indexer.IndexingJob.index(IndexingJob.java:152) 在 org.apache.nutch.indexer.IndexingJob.run(IndexingJob.java:235) 在 org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) 在 org.apache.nutch.indexer.IndexingJob.main(IndexingJob.java:244)
我该如何解决这个问题?
答案1
如果你在 solr.log 中看到
This IndexSchema is not mutable.
,那么在 solrconfig.xml 中,将 true 替换为 false
<updateRequestProcessorChain name="add-unknown-fields-to-the-schema" default="${update.autoCreateFields:false}"
processor="uuid,remove-blank,field-name-mutating,parse-boolean,parse-long,parse-double,parse-date,add-schema-fields">
然后它可能会起作用,或者至少在 solr.log 中会有更多信息
答案2
我遇到了同样的问题,并发现在 Solr 中名为“nutch”的核心未被映射,因此我从 Solr > 核心管理 (http://localhost:8983/solr/#/)(创建名为 nutch 的新文件夹并复制模式文件)并且它起作用了。