1.nutch建立索引成功,通过lucene直接搜索索引文件可以搜索到相关结果,但是通过nutch搜索不到结果
解决方案:
<property>
<name>searcher.dir</name>
<value>crawl</value>
</property>
在nutch-default.xml中配置searcher.dir的默认路径为crawl,nutch会到crawl这个路径里面搜索,而你的索引文件跟本不在这个目录下面,所有搜索不到结果.
你可以在nutch-site.xml中加入searcher.dir这个属性的配置,value为nutch的索引文件的上一级目录.
比如: 你的索引文件为f:/temp/index,你应该配置为f :/temp
<property>
<name>searcher.dir</name>
<value>f:/temp</value>
</property>
搜索不到的另一个原因:
nutch是通过BooleanQuery来搜索的,当你搜索相关内容的时候,默认会搜索所有的FIELD.
你必须保证所搜索Field之间的相关关系为BooleanClause.Occur.SHOULD
2.怎么高亮显示搜索结果
Hits hits = bean.search(query, 10);
HitDetails detail=bean.getDetails(hits.getHit(i));
Summary summaries = bean.getSummary(detail, query);
String content=summaries.toHtml(true); //这样得到高亮显示的HTML
3.nutch在控制台跑不来的原因
nutch-default.xml文件里面配置了nutch的相关配置文件.
而nutch在读取这些文件的时候,是通过Configuration.class.getResource("")(读取当前类路径)来读取相关配置文件的.
所以跑不起来,须先看看你的相应配置文件,在不在你的类路径下..
类路径必须包含的文件有:
mime-types.xml
common-terms.utf8
parse-plugins.xml
nutch-site.xml
nutch-default.xml
regex-urlfilter.txt
crawl-urlfilter.txt
4. 网页快照如何实现
nutch通过相关词进行搜索网页的时候,会查询出这个关键词对应的相关信息..
比如:title,url,content等等.
通过URL我们可以链接到相关真实的URL.
而网页快照其实是nutch在索引时,索引以前网页的内容.
所有当点击网页快照时,我们根据索引文档的ID,去索引出原网页内容.
Hit hit = new Hit(getIndexNo,getIndexDocNo);
HitDetails details = bean.getDetails(hit);
String content = new String(bean.getContent(details));