提问者:小点点

Apache nutch和solr:查询


我刚刚开始使用Nutch 1.9和Solr 4.10

在浏览了某些页面后,我发现运行该版本的语法已经更改,并且我必须更新某些XML来配置Nutch和Solr

此版本的包不需要Tomcat来运行。我开始索尔:

Java-jar start.jar

并检查localhost:8983/solr/admin,它正在工作。

我在bin/url/seed.txt中植入了一个种子,种子是“simpleweb.org”

在nutch中运行命令。/crawl urls-dir crawl-depth 3-topn 5

在这中间我得到了很少的IO异常,因此为了避免IO异常,我下载了patch-hadoop_7682-1.0.x-win.jar并在nutch-site.xml中创建了一个条目,并将jar文件放在nutch的lib中。

运行Nutch后,创建了以下文件夹:

apache-nutch-1.9\bin\-dir\crawldb\current\part-00000

我可以在该路径中看到以下文件:

data<br>
index<br>
.data.crc<br>
.index.crc<br>

我想知道如何处理这些文件,接下来的步骤是什么?我们可以查看这些文件吗?如果是,怎么做?

我将抓取的数据从Nutch编入Solr:

用于将solr与nutch链接(命令已成功完成)命令。/crawl URL solr http://localhost:8983/solr/-depth 3-topn 5

为什么我们需要将Nutch抓取的数据索引到Solr中?

使用Nutch爬行后

用于此操作的命令:./crawl urls-dir crawl-depth 3-topn5;是否可以查看已爬网的数据,如果可以,在哪里查看?

或者只有在将Nutch爬网的数据索引到Solr之后,我们才能查看爬网的数据?

如何在Solr Web中查看爬网数据?

为此使用的命令:。/crawl URL solr localhost:8983/solr/-depth 3-topn 5


共1个答案

匿名用户

虽然Nutch是为了成为一个网络规模的搜索引擎而建立的,但情况已经不是这样了。目前,Nutch的主要目的是进行大规模爬行。然后,您对爬网数据的操作取决于您的要求。默认情况下,Nutch允许将数据发送到Solr中。这就是为什么你能跑

crawl url crawl solraddress depth level

您还可以发出solr url参数。在这种情况下,nutch不会将爬网数据发送到Solr中。如果不将爬网数据发送到solr,您将无法搜索数据。抓取数据和搜索数据是两码事,但非常相关。

通常,您会在crawl/segments而不是crawl/crawDB中找到爬网数据。crawl db文件夹存储了关于已爬网URL的信息、它们的获取状态和下次获取的时间,以及一些用于爬网的其他有用信息。Nutch将实际爬网数据存储在爬网/段中。

如果您想要一种简单的方式来查看爬网数据,您可以尝试Nutch2.x,因为它可以通过Gora组件将爬网数据存储到MySQL、Hbase、Cassandra等多个后端。

要在solr上查看数据,只需向solr发出一个查询,如下所示:

curl http://127.0.0.1:8983/solr/collection1/select/?q=*:*

否则,您可以通过添加索引器插件将数据推送到不同的存储区。目前,Nutch支持向Solr和ElasticSearch发送数据。这些索引器插件发送结构化数据,如标题、文本、元数据、作者和其他元数据。

以下总结了Nutch中发生的情况:

seed list -> crawldb -> fetching raw data (download site contents) 
-> parsing the raw data -> structuring the parse data into fields (title, text, anchor text, metadata and so on)-> 
sending the structured data to storage for usage (like ElasticSearch and Solr).

这些阶段中的每一个都是可扩展的,允许您添加逻辑以满足您的需求。

我希望这能消除你的困惑。