修改nutch分页功能

原创 2012年03月28日 11:29:42

发现nutch的分页功能做的实在是粗糙,最主要的是没有上一页,而且一出场默认显示两条记录来,再来个showAllhits,多余!这是个问题,今天早上花了一个小时再去修改它的分页。修改后的效果如下:

当前处在第一页,显示后面的页数和下一页

当前处在第二页,显示前面和后面的页数、上一页、下一页(我抓的是公司的网站,最常用的关键字也只有两页,囧)

css自己调,简要说明下修改过程:

1、去掉showAllhits功能,可以全部注释掉,或者直接干掉

<!-- 去掉 showAllhits 功能-->
<%--
   if ((!hits.totalIsExact() && (hits.getLength() <= start+hitsPerPage))) {
--%><!--
    <form name="showAllHits" action="../search.jsp" method="get">
    <input type="hidden" name="query" value="<%=htmlQueryString%>">
    <input type="hidden" name="lang" value="<%=queryLang%>">
    <input type="hidden" name="hitsPerPage" value="<%=hitsPerPage%>">
    <input type="hidden" name="hitsPerSite" value="0">
    <input type="hidden" name="clustering" value="<%=clustering%>">
 <input type="submit" value="More..">-->
<%-- if (sort != null) { --%><!--
    <input type="hidden" name="sort" value="<%=sort%>">
    <input type="hidden" name="reverse" value="<%=reverse%>">-->
<%-- } --%><!--
    </form>-->
<%--
    }
--%>

2、去掉这个后,把下一页的功能换成

<table id="paging">
<tr>
<!-- 上一页功能 -->
<%
 if (start >= hitsPerPage) // more hits to show
    {
%>
<td>
 <form name="pre" action="../search.jsp" method="get">
 <input type="hidden" name="query" value="<%=htmlQueryString%>">
 <input type="hidden" name="lang" value="<%=queryLang%>">
 <input type="hidden" name="start" value="<%=start - hitsPerPage%>">
 <input type="hidden" name="hitsPerPage" value="<%=hitsPerPage%>">
 <input type="hidden" name="hitsPerSite" value="<%=hitsPerSite%>">
 <input type="hidden" name="clustering" value="<%=clustering%>">
 <input type="submit" value="上一页">
<% if (sort != null) { %>
    <input type="hidden" name="sort" value="<%=sort%>">
    <input type="hidden" name="reverse" value="<%=reverse%>">
<% } %>
</form>
</td>
<% } %>

<!-- 分页功能 -->
<%  long totalPage = hits.getTotal()%hitsPerPage>0?hits.getTotal()/hitsPerPage+1:hits.getTotal()/hitsPerPage;//总页数
 long currentPage = start/hitsPerPage+1;//当前页数
 for(long i=1; i<=totalPage; i++){
  if(i==currentPage){
%>
<td><%=currentPage %></td>
<%  
  }else{
%>
<td>
<form name="next" action="../search.jsp" method="get">
 <input type="hidden" name="query" value="<%=htmlQueryString%>">
 <input type="hidden" name="lang" value="<%=queryLang%>">
 <input type="hidden" name="start" value="<%=hitsPerPage*(i-1)%>">
 <input type="hidden" name="hitsPerPage" value="<%=hitsPerPage%>">
 <input type="hidden" name="hitsPerSite" value="<%=hitsPerSite%>">
 <input type="hidden" name="clustering" value="<%=clustering%>">
 <input type="submit" value="<%=i %>">
 <% if (sort != null) { %>
    <input type="hidden" name="sort" value="<%=sort%>">
    <input type="hidden" name="reverse" value="<%=reverse%>">
<% } %>
</form>
</td>
<% }
} %>


<!-- 下一页功能 -->
<%
if ((hits.totalIsExact() && end < hits.getTotal()) // more hits to show
    || (!hits.totalIsExact() && (hits.getLength() >= start+hitsPerPage))) {
%>
<td>
<form name="next" action="../search.jsp" method="get">
    <input type="hidden" name="query" value="<%=htmlQueryString%>">
    <input type="hidden" name="lang" value="<%=queryLang%>">
<!--    <input type="hidden" name="start" value="<%=end%>">-->
 <input type="hidden" name="start" value="<%=start+hitsPerPage%>">
    <input type="hidden" name="hitsPerPage" value="<%=hitsPerPage%>">
<!--    <input type="hidden" name="hitsPerSite" value="<%=hitsPerSite%>">-->
    <input type="hidden" name="clustering" value="<%=clustering%>">
    <input type="submit" value="<i18n:message key="next"/>">
<% if (sort != null) { %>
    <input type="hidden" name="sort" value="<%=sort%>">
    <input type="hidden" name="reverse" value="<%=reverse%>">
<% } %>
</form>
</td>
<% } %>
</tr>
</table>

分别为上一页、分页、下一页。加table是为了让他们排在一列,你懂的!

3、需要修改默认的hitsPerSite,刚开始默认为2

int hitsPerSite = 0;                            // max hits per site

ok了!

 

nutch 1.2 分页处理

nutch 1.2 分页处理

nutch的查询结果页面search.jsp如何实现翻页功能

翻页功能其实很简单 就是在当前的查询结果的基础上,向下查询hitsPerPage个结果,但要注意因为search.jsp源码中,将每个站点的查询返回结果数hitsPerSite设置为2,所以翻页是会...

用smarty模板做数据实现修改、分页等功能

先来看怎么把数据库的列表全都显示出来 还是要先建一个php文件,还有html文件,都存到相应的目录下 php文件中 php include("../init.inc.php"); inc...

分页功能改善,以form方式提交查询条件,可手动修改每页显示数量

JSP代码 每页显示 5 10 20 50 100 条记录 ...
  • kane245
  • kane245
  • 2016年09月14日 14:57
  • 591

使用Ext的Grid,Form,Dialog来实现分页列表,创建,修改,删除功能

签于现在网上多数的Form的例子都多数是描述前台UI的,而没有对与服务端通讯的部分,故参考EXTJS的一个指南,写下此文,希望能对大家有所帮助. 在WEB应用中,大部分的页面都可以被分为:列表,...

JQuery实现分页功能

使用JQuery实现分页功能。 1、分页栏HTML码 2、 CSS样式文件 .g-cf:after {clear: both;content: "";displ...

js分页功能

  • 2014年05月25日 17:32
  • 11KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:修改nutch分页功能
举报原因:
原因补充:

(最多只允许输入30个字)