`
mr_lonely_hp
  • 浏览: 89933 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

关于nutch1.0二次开发需要更改的东西

阅读更多

二次开发的时候,需要重点对Nutch的界面及界面显示数据进行适当的调整。

目前据我了解到的要修改的地方有以下几点:

1。搜索页面页头页尾log修改、选项卡乱码显示问题。
2。显示查询结果行 添加查询用时
3。查询结果摘要长度修改,默认只有20个字符。
4。网页快照乱码修改,以及后面的(评分详解) (anchors) (more from news.qq.com)菜单项修改。
5。show all hits修改
6。分页功能修改,源码只有下一页功能。
7。文本高亮显示。


改变摘要长度,在文件nutch-site.xml中
<configuration>
...
<property>
<name>searcher.summary.length</name>
<value>100</value>//默认为20
<description>
The total number of terms to display in a hit summary.
</description>
</property>
...
</configuration>


所谓网页快照及搜索引擎服务器端存储的网页副本。Nutch通过关键字进行搜索网页的时候,会查询出这个关键字对应的相关信息,比 如:title、url、content等等。通过URL可以链接到该URL对应的网页。而网页快照其实是Nutch爬虫爬取下来的网页内容。因此,当点 击网页快照时,我们根据索引文档的ID,去索引出原网页内容。该源代码在查询服务系统中的 cache.jsp中,下面是相关代码:
Hit hit = new Hit(Integer.parseInt(request.getParameter("idx")),
request.getParameter("id"));
HitDetails details = bean.getDetails(hit);
….

String content = new String(bean.getContent(details));
另外还涉及到Nutch 网页快照的中文问题,中文时采用UTF-8取得内容就行了。
修改cached.jsp,把
content = new String( bean.getContent(details) );
改成
content = new String( bean.getContent(details) ,"utf-8");
如果需要对内容的显示方面做一些修改的话,通过该页面也可以修改。


高亮显示涉及到的类为:org.apache.nutch.searcher.Summary,修改该类即可:
public String toHtml(boolean encode) {
Fragment fragment = null;
StringBuffer buf = new StringBuffer();
for (int i=0; i<fragments.size(); i++) {
fragment = (Fragment) fragments.get(i);
if (fragment.isHighlight()) {
buf.append("<span style=\"color:red \" >") // 修改前语句 buf.append("<span style=\"hightlight \" >")
.append(encode ? Entities.encode(fragment.getText())
: fragment.getText())
.append("</span>");
} else if (fragment.isEllipsis()) {
buf.append("<span class=\"ellipsis\"> ... </span>");
} else {
buf.append(encode ? Entities.encode(fragment.getText())
: fragment.getText());
}
}
return buf.toString();
}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics