什么是 elasticsearch 的 Nutch 1.10 爬网命令

What is Nutch 1.10 crawl command for elasticsearch

使用 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 是多少?为什么 space 在“-D 和 elastic...”之间被删除

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

如果有人能指出我的方法错误,那就太好了!

更新 我刚刚在下面发布了我自己的答案,这是第二个。几个月前,当我最初开始使用它时,我已经接受了第一个答案。我的回答只是更清晰和简洁,以便更容易(和更快)开始使用 Nutch。

不幸的是,我不能告诉你哪里出了问题,因为我在同一条船上,尽管据我所知,你和我在同一个盒子上 运行ning nutch 和 elastic把它一分为二。

我还没有让它工作,但根据我发现的关于将 nutch 1.7 与 elastic 集成的指南,它应该只是

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

可能只是它对我不起作用,因为我添加了额外的网络复杂性。

我还假设您已经在弹性实例中创建了一个名为 elasticTestIndex 的索引,并在尝试 运行 抓取之前在盒子上启动了它?

我从 is

那里得到的命令对指南有帮助吗

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

更新:

我不确定我是否已经到达那里,但使用您的更新我已经比以前走得更远了。

您输入的是 Web 管理端口 9200,但您需要使用端口 9300 与服务交互,因此请将端口更改为 9300

我不确定,但我认为斜杠后的部分是指索引,因此在您的示例中,请确保将 "elastic" 设置为索引。或更改

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

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

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

虽然我还没有从 elastic 中提取爬网数据,但使用您提供的备用端口的命令它做到了 运行。

补充更新:

它成功地将我从 nutch 抓取的数据转储到 elastic 中,并且在命令行中放入了不同的索引我可以告诉你它忽略了这一点并使用了你 nutch 中的任何东西-site.xml

帮助其他人让它工作

首先阅读本文 blog post 以帮助您将 Elasticsearch 配置为与 Nutch 一起使用。

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

按照该页面上新的 Nutch 爬网脚本命令中的示例进行操作。你必须为 elasticsearch 稍微改变一下: solr.server.url=http://localhost:8983/solr/ 类似的东西 elastic.server.url=http://localhost:9300/yourelasticindex/

所以基本上有两个步骤:

  1. 配置 Elasticsearch 以与 Nutch 一起工作(点击上面的第一个 link)
  2. 更改 solr 的新 cli 命令以与 Elasticsearch(其 默认为 solr)希望对您有所帮助!