关于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();
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章