我在一个ec2-instance上集成了Nutch1.13和Solr 6.5.1。我使用下面的cp命令将schema.xml复制到Solr。我在nutch_home / conf文件夹中的nutch-site.xml中将localhost作为elatic.host。
cp /usr/local/apache-nutch-1.13/conf/schema.xml /usr/local/apache-nutch-1.13/solr-6.5.1/server/solr/nutch/conf /
每次创建托管模式时都会创建自己的solr 6.所有直到索引的工作都能正常工作。我试过的命令是
[ec2-user @ ip-172-31-16-137 apache-nutch-1.13] $ bin / crawl -i -D solr.server.url = http://35.160.82.191:8983/solr/#/nutch/ urls / crawl 1
在运行命令之前,一切似乎都很好。我完全陷入了最后一步。
运行错误: /usr/local/apache-nutch-1.13/bin/nutch index -Dsolr.server.url =://35.160.82.191:8983 / solr /#/ nutch / crawl / crawldb -linkdb crawl / linkdb crawl / segments / 20170519074733 退出值为255失败。
提前致谢
更新 我在conf / nutch-site.xml
中更改了下面的prperty<property>
<name>plugin.includes</name>
<value>protocol-http|urlfilter-regex|parse-html|index-(basic|anchor)|query-(basic|site|url)|response-(json|xml)|summary-basic|scoring-opic|urlnormalizer-(pass|regex|basic)</value>
</property>
现在没有错误但我得到了
重复数据删除在2017-05-19 10:08:05结束,过了00:00:03 索引20170519100420索引 /usr/local/apache-nutch-1.13/bin/nutch index -Dsolr.server.url = // 35.160.82.191:8983/solr/nutch/ crawl / crawldb -linkdb crawl / linkdb crawl / segments / 20170519100420 分段目录已完成:crawl / segments / 20170519100420。 Indexer:从2017-05-19 10:08:06开始 索引器:删除已删除的文件:false Indexer:URL过滤:false Indexer:URL规范化:false 没有激活IndexWriters - 检查您的配置 索引器:索引,删除或跳过的文档数: 索引器:44索引(添加/更新) 索引器:于2017-05-19 10:08:10结束,已过去:00:00:03 尽可能清理索引 /usr/local/apache-nutch-1.13/bin/nutch clean -Dsolr.server.url = // 35.160.82.191:8983/solr/nutch/ crawl / crawldb 5月19日星期五10:08:13 UTC 2017:完成循环1次迭代
更新2 我发现在这个post中在nutch-site.xml帮助中添加了solr-indexer,但现在错误在于清理部分
运行错误: /usr/local/apache-nutch-1.13/bin/nutch clean -Dsolr.server.url =://35.160.82.191:8983 / solr / nutch / crawl / crawldb 退出值为255失败。
因为我想使用Solr实现搜索引擎所以有任何建议 更新3
现在没有任何错误。但由于某种原因,取出不起作用。仅提取和爬网urls / seed.txt中指定的URL。 nutch没有外部链接。
[ec2-user @ ip-172-31-16-137 apache-nutch-1.13] $ bin / crawl -i -D solr.server.url = http://35.160.82.191:8983/solr/nutch/ urls / crawl 5 注入种子URL /usr/local/apache-nutch-1.13/bin/nutch inject crawl / crawldb urls / 注射器:从2017-05-19 12:27:19开始 Injector:crawlDb:crawl / crawldb 注射器:urlDir:urls 注入器:将注入的URL转换为爬网数据库条目。 注入器:覆盖:false 注入器:更新:false Injector:过滤器拒绝的网址总数:0 注射器:标准化和过滤后注入的总网址:1 注射器:注射的总网址但已经在CrawlDb中:1 注射器:注入的新网址总数:0 注射器:在2017-05-19 12:27:21完成,经过时间:00:00:02 5月19日星期五12:27:21 UTC 2017:迭代1的5 生成新细分 /usr/local/apache-nutch-1.13/bin/nutch generate -D mapreduce.job.reduces = 2 -D mapred.child.java.opts = -Xmx1000m -D mapreduce.reduce.speculative = false -D mapreduce.map .speculative = false -D mapreduce.map.output.compress = true crawl / crawldb crawl / segments -topN 50000 -numFetchers 1 -noFilter 发电机:从2017-05-19 12:27:23开始 生成器:选择要获取的最佳得分网址。 生成器:过滤:false 发电机:正常化:真实 发电机:topN:50000 生成器:选择0条记录进行提取,退出... 生成返回1(未创建新段) 转义循环:不再需要立即获取的网址
我想使用来自Solr的网络搜索结果的nutch数据 最终更新
[ec2-user@ip-172-31-16-137 apache-nutch-1.13]$ bin/crawl -i -D solr.server.url=://35.160.82.191:8983/solr/nutch/ urls/ crawl 1
答案 0 :(得分:0)
nutch-site.xml
不需要复制到Solr,只需要schema.xml
文件来指定您想要来自Nutch的数据的架构。如果您使用的是Solr而非ES,则不需要此参数elatic.host
。检查logs/hadoop.log
文件以查看是否有更多关于异常的数据,当然,检查Solr端的日志,此错误通常意味着Solr配置出现问题,缺少字段等。在这种情况下,既然你没有复制schema.xml并且Nutch没有利用Solr 6上的托管模式,Solr必须抱怨缺少的字段,也包括#
字符的solr URL并不好看,Solr Admin UI如何在浏览器中显示数据,但是从Nutch /终端使用它应该是/solr/nutch
。
BTW检查the tutorial虽然最近的Solr版本中的一些路径已经改变,但仍然是关于集成如何工作的良好指导