什么是弹性搜索的Nutch 1.10抓取命令

时间:2015-08-07 19:41:22

标签: elasticsearch command web-crawler nutch

使用Nutch 1.10(新手),我试图学习如何使用Nutch 1.10爬行并使用ElasticSearch作为我的索引器。不知道为什么,但我不能让这个抓取命令起作用:

bin/crawl -i --elastic -D elastic.server.url=http://localhost:9200/elastic/ urls elasticTestCrawl 1

更新:刚刚使用

bin/crawl -i -D elastic.server.url=http://localhost:9200/elastic/ urls/ elasticTestCrawl/  2

- 几乎成功,在命令的索引部分遇到以下错误:

Error running:
  /home/david/apache-nutch-1.10/bin/nutch clean -Delastic.server.url=http://localhost:9200/elastic/ elasticTestCrawl//crawldb
Failed with exit value 255.

nutch 1.x的退出值255是多少?为什么在“-D和弹性......”之间删除空格

我在nutch-site.xml文件中有here的这些ElasticSearch属性:

如果有人可以指出我的方式错误,那就太棒了!

更新 我刚刚在下面发布了自己的答案,第二个。几个月前,当我最初开始工作时,我已经接受了第一个答案。我的答案更加简洁明了,让Nutch开始变得更容易(也更快)。

2 个答案:

答案 0 :(得分:2)

不幸的是,我无法告诉你,因为我在同一条船上,所以你错了。虽然我可以看到你在同一个盒子上运行nutch和弹性,我将它分成两个。

我没有得到它的工作,但根据我发现将nutch 1.7与弹性相结合的指南,它应该只是

bin/crawl urls/ TestCrawl -depth 3 -topN 5

可能只是因为我没有为我工作,因为我增加了网络的额外复杂性。

我还假设您在弹性实例中创建了一个名为elasticTestIndex的索引,并在尝试运行爬网之前将其启动到框中?

如果它有帮助我从那个命令得到的指南是

https://www.mind-it.info/integrating-nutch-1-7-elasticsearch/

<强>更新

我不确定我是否还在那里,但是使用你的更新后我得到了更多。

您正在输入端口9200,这是Web管理员端口,但您需要使用端口9300与服务进行交互,因此将端口更改为9300

我不确定但是我认为斜杠之后的部分是指索引所以在你的例子中确保你将“弹性”设置为索引。或改变

blah (low rep score so can't put in to many urls) blah localhost:9300/[index name]/

以便它使用您创建的索引。如果你还没有创建一个,那么你可以使用以下命令从putty中完成。

curl -XPUT 'http://localhost:9200/[index name]/'

使用您提供的备用端口提供的命令,虽然我还没有从弹性中提取爬行数据,但它确实运行了。

补充更新:

它成功地将从nutch爬行的数据转储到弹性中并在命令行中放入了不同的索引我可以告诉你它忽略了它并使用你的nutch-site.xml中的内容

答案 1 :(得分:1)

帮助其他任何人开展工作

首先阅读此blog post以帮助您将Elasticsearch配置为与Nutch合作。

之后阅读this Nutch doc以熟悉用于运行抓取脚本的 NEW cli命令。 (适用于1.9 +)

按照该页面上新Nutch抓取脚本命令中的示例进行操作。你必须为弹性搜索改变一点: solr.server.url = http://localhost:8983/solr/之类的东西 elastic.server.url = http://localhost:9300/yourelasticindex/

所以基本上有两个步骤:

  1. 配置Elasticsearch以使用Nutch(点击上面的第一个链接)
  2. 更改solr的新cli命令以使用Elasticsearch(它的 默认是solr)希望有所帮助!