nutch学习笔记(二)入门篇
上一篇博客中叙述了如何利用nutch爬取网页的过程。本篇则讲述建立逆向索引以及与solr结合展示结果的方法。
1. 建立逆向索引
所谓的逆向索引,其实就是从词(字符串)到文本的映射。一般而言,在爬取网页后,我们会自然而然的会得到一种索引——从文本到词的映射,即查询条件为文本,查询结果为该文本中包含哪些词(字符串)。但是在实际应用中,这种索引的价值不高,因为让用户记住一个文本的链接或者标题什么的,不太现实。相反,让用户通过一定的关键字,查找出想要的文本,这种方式的实用价值更高,更容易使用。由于这种映射是从词到文本的,与我们自然得到的映射相反,故称为逆向索引。
利用nutch建立逆向索引的方法十分简单:
$NUTCH_HOME/bin/nutch invertlinks /your/linkdb/directory -dir /your/segments/directory
2. 与solr集成
solr是一个基于lucene框架的一个企业级全文搜索服务。具体的介绍,我会单独写一篇博客。在nutch与solr集成之前,当然需要安装好solr,这里我采用的是solr-4.8.0。
1). 安装solr
从apache-solr官网中下载solr4.8.0。linux用户下载.tgz后缀的文件。下载至linux文件系统后,解压即可。这里假设解压后的目录为$SOLR_HOME,比如:/root/solr-4.8.0/。如果需要查看是否安装成功,则:
cd $SOLR_HOME/example
java -jar start.jar
通过http://yourhostname:8983/solr访问,如果访问成功,则说明solr安装成功了。
注:solr的example目录中,集成了一个为solr优化过的jetty,运行java -jar start.jar是使solr运行在jetty servlet container中。
2). 配置solr
mv $SOLR_HOME/example/solr/collection1/conf/schema.xml $SOLR_HOME/example/solr/collection1/conf/schema.xml.org
cp $NUTCH_HOME/runtime/local/conf/schema-solr4.xml $SOLR_HOME/example/solr/collection1/conf/schema.xml
vi $SOLR_HOME/example/solr/collection1/conf/schema.xml
在</fields>之前插入<field name="_version_" type="long" stored="true" indexed="true"/>
保存退出
重新启动solr: java -jar start.jar
3). 整合nutch与solr
$NUTCH_HOME/runtime/local/bin/nutch solrindex http://yourhostname:8983/solr /your/crawldb/directory/ -linkdb /your/linkdb/directory /your/segments/2014xxxx/directory -filter -normalize。