操他妈的!终于成功了!!!日啊。。。UBUNTU下NUTCH1.1网页搜索结果总为0解决,太悲剧了。。。

来源:互联网 发布:二战美军知乎 编辑:程序博客网 时间:2024/04/30 00:18

UBUNTU下配置NUTCH1.1,按照书上<Lucene+Nutch 搜索引擎开发>一步一步来,前面都是成功的,包括建索引和对索引的搜索,但是到了从网页搜索索引的时候却总是返回0,。。。好无语了。。。网上绝大部分都是说要更改配置文件,增加至 nutch/WEB-INF/classes 下 nutch-site.xml ,增加配置为

 

 

<property>

  <name>http.agent.name</name>

  <value>*</value>

  <description></description>

</property>

 

<!-- file properties -->

 

<property>

  <name>searcher.dir</name>

  <value>D:/nutch-0.8.1/crawled</value>

  <description></description>

</property>

</configuration>

 

 

实验发现http.agent.name中的value很无所谓的。。。设成什么都行。。。靠。。。searcher.dir就是索引所在的目录,但是我这样设置了依然总是返回0个结果。。。就在我绝望的时候。。。我决定去打飞机?NO。。。决定重装Tomcat,实在不行就放弃这一步,明天继续往下走。。。因为我没有找到tomcat的conf文件jia,面好像有个错误就是提示找不到conf/server.xml,因为我的Tomcat是用ubuntu10.04的软件安装包直接安装的,我把网上的各种解决方案都看了,实在不行了就怀疑到了TOMCAT。。。去apatch-tomcat下载了最新的tomcat,解压,运行。。。起了个项目名字叫 FUCKROOT...结果FUCK成功了。。。真是太悲哀了。。。被一个UBUNTU自动安装的TOMCAT6给耍了。。。唉。。。

 

 

同时发现一个问题,就是在eclipse中执行crawl去抓取网页跟直接在UBUNTU下用命令行去执行

 

bin/nutch crawl multiurls.txt -dir crawleddd -depth 2 -topN 50 -threads 10

他们的配置是不一样的。。。好悲哀。。。就是 nutch-1.1/conf/nutch-site.xml
SHELL中执行的是这样
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configure>
<property>
<name>http.agent.name</name>
<value>localweb.com</value>
<description>localweb.com</description>
</property>
<property>
<name>searcher.dir</name>
<value>/media/SOFT/eclipse3.4/workspace/nutch-1.1/multiweb</value>
<description></description>
</property>
</configure>
但是如果要在eclipse中要执行crawl就会报错,会提示plugin(就是插件)CLASSNOTFOUND。。。我日。。。搞毛。。。后来上网搜啊搜。。。发现要再添加一个property,即是
<property>
<name>plugin.folders</name>
<value>/media/SOFT/eclipse3.4/workspace/nutch-1.1/src/plugin</value>
<description></description>
</property>
添加就好了。。。我日。。。
但是添加后再在命令行中执行。。又他妈的错了。。。结果发现去错才能用。。。不知道为啥。。。求高手解答。。。
总之能搜成功了。。。泪流满面啊。。。
成功后会发现乱码,因为NUTCH本身页面是unicode, 而TOMCAT给的应该是GBK,所以有这个问题,改一下tomcat/conf/server.xml
    <Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443"/>
改为
    <Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" URIEncoding='utf-8'/>
就是加了个编码,呵呵。
还有之前配置eclipse ant编绎nutch时,书上说的很笼统。。。说是:
完成必要的配置工作,包括把conf目录添加到“build->Classpath",把"src/test"添加到源代码目录(source folders),添加所有的lib下面的jars和plugin lib中的所有文件到工程中。。。
    靠,就这么几句话。。。可搞死我了。。。瞎搞搞。。。终于搞出来了,添加到class就是在项目设置中的java build path,中第三个TAB页,libraries,右边add classFolder,这里添加conf文件jia就可以了,而添加源代码目录就是右键点击src/test->build path->use as source folder,而最后的添加jar包则是真正的要全部添加。。我把每一个子目录下的JAR添加了才能跑。。。我日。。。累坏了,plugin中有很多都是parse,就是将外部各种文档转化为纯文本,因为lucene只是做全文检索。。前期这些都是Nutch搞的。。。哈哈哈,真是累坏了,呵呵,附上搜索结果,我是对我们公司的官网的信息做的检索,呵呵,顺便推荐下我们的游戏:哈皮星球 www.hapistar.com哈哈哈

 

 

原创粉丝点击