2016-01-22 51 views
0

我在Linux上使用Nutch 1.9和Solr 4.10。我需要抓取并索引大网站的内容,并希望使用单独的Solr内核来执行此操作。以下是Nutch配置作为cronjob的一部分...用于多个solr内核的nutch配置

./bin/crawl conf/core0urls crawl http://solrhost:8085/solr/core0 1 
./bin/crawl conf/core1urls crawl http://solrhost:8085/solr/core1 2 

我有一个cronjob设置为上述一分钟。可能有人帮助我在下面......

  1. 我想知道core0是什么意思1core1什么2是什么意思?
  2. 我使用conf/core0urlsconf/core1urls创建了单独的seed.txt文件。这是有效的,但我想为每个核心单独的regex-urlfilter.txt文件和Nutch应该检测到它。请让我知道我该如何实现它。
  3. 如果单个Nutch中无法实现上述操作,我应该为每个Solr内核设置单独的Nutch实例吗?

回答

0

您需要创建nutch的两个实例以推送到不同的solr核心(或针对该问题的服务器)。问题是你想要使用不同的regex-urlfilter.txt文件。从技术上讲,你可以用一个nutch实例来做到这一点,但它需要你编写大量的代码。因此,最简单的方法是设置两个nutch实例。

至于抓取命令参数,

./bin/crawl conf/core0urls crawl http://solrhost:8085/solr/core0 1 

的值在这里是指在core0urls只抓取网址。不要转到第二个深度并抓取从第一次抓取中生成的网址。基本上,你正在进行一次爬行。

+0

感谢您的意见。如果我有安装 1> 所以reconfriming/Nutch的/ nutchcore0因此,所有的文件从这里复制和创建/ Nutch的/ nutchcore1 中的cronjob CD/Nutch的/ nutchcore0 /斌/爬行的conf/core0urls抓取HTTP :// solrhost:8085/solr的/ CORE0 1 坎德拉/的nutch/nutchcore1 ./bin/crawl CONF/core1urls抓取的http:// solrhost:8085/solr的/核心-1 1 2> 所以 1值仍然有几个问题,这是否意味着 所以如果在conf/core0urls/seed.txt 我有 http://aaa.com http://bbb.com http://ccc.com 那么它只会抓取http://aaa.com,它不会抓取其他网站http://bbb.com或http:// ccc.com – user3732294

+0

你是对的第一号。然而,对于第二号,它将抓取所有的网址。但是,它不会抓取在aaa.com,bbb.com或ccc.com中找到的链接。它将抓取深度设置为2,然后它将抓取这些链接。如果您发现它有用,请介意接受我的答案或为其投票。 – ameertawfik

+0

重新确认如果设置为1,它只会抓取aaa.com,bbb.com,ccc.com。因此,如果我设置了2,它将抓取上述URL中找到的所有链接。有没有其他的值,如3,4,...有什么好的。 – user3732294