Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 308|回复: 0

[Java框架学习]Lucene索引查询分页实例

[复制链接]
  • TA的每日心情
    开心
    2021-3-12 23:18
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2014-10-28 23:57:10 | 显示全部楼层 |阅读模式
    一、输入关键字的lucene.HTML
    <html>
    <body>
    <form name="form1" method="post" action="search.jsp">
        请输入关键字:<input type="text" name="keyword">
       <input type="submit" name="Submit" value="提交">
    </form>
    </body>
    </html>
    效果图:


      
      
      
      
    二、进行搜索和显示结果的search.jsp <%@ page contentType="text/html; charset=gb2312" %>
    <%@ page import="java.util.*" %>
    <%@ page import="java.text.SimpleDateFormat" %>
    <%@ page import = "org.apache.lucene.analysis.standard.StandardAnalyzer" %>
    <%@ page import="org.apache.lucene.index.IndexReader" %>
    <%@ page import="org.apache.lucene.document.Document" %>
    <%@ page import="org.apache.lucene.search.IndexSearcher" %>
    <%@ page import="org.apache.lucene.search.Hits" %>
    <%@ page import="org.apache.lucene.search.Query" %>
    <%@ page import="page.Pagination" %> <%@ page import="org.apache.lucene.queryParser.QueryParser" %>
    <%@ page import ="org.apache.lucene.analysis.Analyzer" %>
    <%
    1.   String queryString = request.getParameter("keyword");  
    2.    
    3.      if (queryString == null||queryString.length()==0){
    4.                out.println("搜索关键字不能为空");
    5.                         
    6.      }else{
    7.          queryString=new String(queryString.getBytes("ISO8859_1"));
    8.         String indexPath=getServletContext().getRealPath("/")+"index";   
    9.         boolean error = false;   
    10.         Document doc;            
    11.         
    12.         IndexSearcher searcher = null;         
    13.         Query query = null;                    
    14.         Hits hits = null;                     
    15.         
    16.         try {
    17.         searcher = new IndexSearcher(IndexReader.open(indexPath));
    18.         } catch (Exception e) {                        
    19.                 out.print("没有找到索引文件!");
    20.                 out.print(e.getMessage());   
    21.                 error = true;                                
    22.         }
    23.        if (error == false) {                                          
    24.                Analyzer analyzer = new StandardAnalyzer();
    25.                try {
    26.                         query = QueryParser.parse(queryString, "Article_name", analyzer);  
    27.                 } catch (Exception e) {                        
    28.                         out.print(e.getMessage());
    29.                         error = true;                                 
    30.                                                                      
    31.                 }
    32.         }
    33.         if (error == false && searcher != null) {                     
    34.                                                                     
    35.                 hits = searcher.search(query);                        
    36.                 if (hits.length() == 0) {
    37.                            out.print("对不起!没有找到你所需要的资源. ");
    38.                    error = true;                                       
    39.                 }
    40.         }
    41.         if (error == false && searcher != null) {   
    42.               out.print("搜索关键字:"+ queryString+ "");  
    43.               //Pagination类是网上下载的,需要传递一个向量,你可以改,这样就不用做二遍事  
    44.               Vector list=new Vector();
    45.               for(int i=0;i< hits.length();i++){
    46.                 doc = hits.doc(i);     
    47.                 list.add(doc);
    48.               }   
    49.               
    50.               out.print("找到的资源");
    51.               Pagination pagination = null;
    52.               String pageNumber = request.getParameter("pageNumber");
    53.       
    54.               int showItemNumber = 10;
    55.               if (pageNumber == null) {
    56.                   pageNumber = "1";
    57.               }
    58.               String HTML = "";
    59.               if (list != null && list.size() > 0) {
    60.                  pagination = new Pagination();
    61.                  pagination.setPageNumber(Integer.parseInt(pageNumber));
    62.                  pagination.setShowItemNumber(showItemNumber);
    63.                  pagination.setVisitPageURL("search.jsp?keyword="+queryString);
    64.                  list =(Vector) pagination.interceptListByStarItemNumber(list);
    65.                  for(int i=0;i< list.size();i++)
    66.                  {
    67.                    doc =(Document) list.get(i);     
    68.                    String A_id=doc.get("Article_id");               
    69.                    String doctitle = doc.get("Article_name");            
    70.                    String url = doc.get("File_name")+"?id="+A_id;                  
    71.                        
    72.                    out.print("< a href="http://127.0.0.1:8080/cwbwebhome/"+url+"">(★) "+doctitle+"");
    73.                   }
    74.                  HTML = pagination.buildHTML("600");
    75.                  out.print(HTML);
    76.                }
    77.         }      
    78.             
    79. }
    复制代码
    效果如图:
    三、处理分页的类Pagination.java(请下载)
       
         
         
          
          

            
          

            
          
         
       

      


    源码下载:http://file.javaxxz.com/2014/10/28/235710203.zip
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2025-2-26 02:06 , Processed in 0.296512 second(s), 36 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表