二次开发的时候,需要重点对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(); }