修改nutch分页功能

发现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了!

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值