nutch 部分问题解决方案

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)); 

你可能感兴趣的:(html,bean,xml,F#,Lucene)