王培顺的博客&WangPeishun’s Blog

标签 校园搜索 下的文章

在整理研究生学习期间的硬盘资料时,找到了以前做毕业论文的程序文档,翻看了一下,觉得可以把里面的Nutch部分拿出来,做一个校园搜索引擎来玩玩。

毕业已经好多年了,Nutch已经改变了不少,1.2以后的版本都使用Solr做索引了,不在使用Lucene。(好像网页爬行和索引也分开了,nutch成了爬虫了,算了就不了解了,因为我用的是nutch1.0和1.2版本。)

说明:系统:CentOS7,Nutch:1.0的src版,中文分词:imdict-chinese-analyzer,web服务:apache-tomcat-8.0.21,jdk版本(centos>yum):java-1.7.0-openjdk-1.7.0.75-2.5.4.7.el7_1.x86_64。(由于不再做修改和编译,Eclipse4.3、Ant1.8.2和Javacc5.0这里就不用了)


1.安装配置JDK:

yum update
yum list java*
yum install java-1.7.0-openjdk-devel.x86_64

在/etc/profile中配置环境变量,jdk默认安装路径/usr/lib/jvm

#set java environment
JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75-2.5.4.7.el7_1.x86_64
JRE_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75-2.5.4.7.el7_1.x86_64/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH

2.安装并配置tomcat:下载apache-tomcat-8.0.21到/usr中,解压。在/etc/profile中配置环境变量。

#set tomcat environment
export CATALINA_HOME=/usr/apache-tomcat-8.0.21
export CATALINA_BASE=/usr/apache-tomcat-8.0.21
export PATH=$PATH:$CATALINA_HOME/bin

3.将Eclipse4.3编译后的 Nutch-1.0文件包copy到/usr,在/etc/profile中配置环境变量。

#set nutch environment
export NUTCH_JAVA_HOME=$JAVA_HOME

让环境变量立即生效:#source/etc/profile。

将nutch-1.0中的nutch-1.0.war copy到/usr/apache-tomcat-8.0.21/webapps中,启动tomcat,解压war包。(水平原因,只能在此nutch-1.0中进行页面修改优化)

# cd /usr/apache-tomcat-8.0.21/bin

#./startup.sh

4.配置爬虫运行起始地址和crawl-urlfilter.txt文件。在/usr/nutch-1.0中新建url.txt(带http://的网址),在/usr/nutch-1.0/conf/crawl-urlfilter.txt中找到# accept hosts in MY.DOMAIN.NAME,在其下添加过滤规则。

# accept hosts in MY.DOMAIN.NAME
+^http://([a-z0-9]*\.)*peishun.wang/
+^http://([a-z0-9]*\.)*znufe.edu.cn/

5.修改nutch-site.xml,添加http.agent.name、sercher.dir等参数。(注意双目录/usr/nutch-1.0/conf、/usr/apache-tomcat-8.0.21/webapps/nutch-1.0/WEB-INF/classes/)

<configuration>
<property>
<name>http.agent.name</name>
<value>wangpeishun</value>
</property>

<property>
<name>searcher.summary.context</name>
<value>10</value>
<description>
The number of context terms to display preceding and following matching terms in a hit summary.
</description>
</property>

<property>
<name>searcher.summary.length</name>
<value>100</value>
<description>
The total number of terms to display in a hit summary.
</description>
</property>

<property>
<name>searcher.dir</name>
<value>\usr\nutch-1.0\webdb001</value>
</property>
</configuration>

6.抓取命令

nutch根目录下执行命令:#bin/nutch crawl url.txt -dir webdb001 -depth 10 -threads1000 -topN5000

url是根目录下存放网站地址的txt

-dir webdb 指定抓取内容所存放的目录

-threads 1000 指定并发线程数

-depth 10 表示要抓取网站顶级网址为起点的爬行深度

-topN 5000 表示获取前多少条记录


若中文乱码需要修改/usr/apache-tomcat-8.0.21/conf中的server.xml,在Connector部分添加URIEncoding=“UTF-8”内容。

其他的页面优化无关紧要,在/usr/apache-tomcat-8.0.21/webapps/nutch-1.0/zh中进行修改(其实应该在Eclipse中修改代码,只是水平不够)。马马虎虎做成这样。

[caption id="" align="alignnone" width="701"] 中南财经政法大学校园搜索系统[/caption]

[caption id="" align="alignnone" width="700"] 中南财经政法大学校园搜索系统[/caption]