`
flashdream8
  • 浏览: 670283 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Lucene索引查询分页实例

阅读更多

一、输入关键字的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" %>
<%

  String queryString = request.getParameter("keyword");  
    
     if (queryString == null||queryString.length()==0){
               out.println("搜索关键字不能为空");
                        
     }else{
         queryString=new String(queryString.getBytes("ISO8859_1"));
        String indexPath=getServletContext().getRealPath("/")+"index";    
        boolean error = false;    
        Document doc;            
        
        IndexSearcher searcher = null;         
        Query query = null;                    
        Hits hits = null;                      
        
        try {
        searcher = new IndexSearcher(IndexReader.open(indexPath));
        } catch (Exception e) {                         
                out.print("没有找到索引文件!");
                out.print(e.getMessage());   
                error = true;                                
        }
       if (error == false) {                                          
               Analyzer analyzer = new StandardAnalyzer();
               try {
                        query = QueryParser.parse(queryString, "Article_name", analyzer);  
                } catch (Exception e) {                         
                        out.print(e.getMessage());
                        error = true;                                 
                                                                      
                }
        }
        if (error == false && searcher != null) {                     
                                                                    
                hits = searcher.search(query);                        
                if (hits.length() == 0) { 
		           out.print("对不起!没有找到你所需要的资源. ");
                   error = true;                                        
                }
        }
        if (error == false && searcher != null) {   
              out.print("搜索关键字:"+ queryString+ "");  
              //Pagination类是网上下载的,需要传递一个向量,你可以改,这样就不用做二遍事  
              Vector list=new Vector();
              for(int i=0;i< hits.length();i++){
                doc = hits.doc(i);     
                list.add(doc);
              }    
              
              out.print("找到的资源");
              Pagination pagination = null;
              String pageNumber = request.getParameter("pageNumber");
       
              int showItemNumber = 10;
              if (pageNumber == null) {
                  pageNumber = "1";
              }
              String HTML = "";
              if (list != null && list.size() > 0) {
                 pagination = new Pagination(); 
                 pagination.setPageNumber(Integer.parseInt(pageNumber));
                 pagination.setShowItemNumber(showItemNumber);
                 pagination.setVisitPageURL("search.jsp?keyword="+queryString);
                 list =(Vector) pagination.interceptListByStarItemNumber(list);
                 for(int i=0;i< list.size();i++)
                 {
                   doc =(Document) list.get(i);     
                   String A_id=doc.get("Article_id");               
                   String doctitle = doc.get("Article_name");            
                   String url = doc.get("File_name")+"?id="+A_id;                   
                       
                   out.print("< a href='http://127.0.0.1:8080/cwbwebhome/"+url+"'>(★) "+doctitle+"");
                  }
                 HTML = pagination.buildHTML("600");
                 out.print(HTML);
               }
        }       
             
 }
分享到:
评论

相关推荐

    lucene4.7 开发简单实例

    lucene4.7开发实例,包括索引创建、修改、删除、排序、分页、优化、高亮显示、常见几种分词器等。实例加全jar包

    开发自己的搜索引擎lucene and heritrix

    检索的分页实现源代码 检索的AJAX实现源代码 安装:直接在Eclipse中选取“import-&gt;Existing Project”,该工程由于是Web工程,因此需要TomcatPlugin插件。 注:随光盘附带的mirror.rar文件是使用Heritrix从...

    Heritrix lucene开发自己的搜索引擎(源码)1

    检索的分页实现源代码 检索的AJAX实现源代码 安装:直接在Eclipse中选取“import-&gt;Existing Project”,该工程由于是Web工程,因此需要TomcatPlugin插件。 注:随光盘附带的mirror.rar文件是使用Heritrix从...

    自己动手写搜索引擎

    该书详细讲解了搜索引擎与信息检索基础,Lucene入门实例,Lucene索引的建立,使用Lucene进行搜索,排序,过滤和分页,Lucene的分析器,对Word、Excel和PDF格式文档的处理,Compass搜索引擎框架,Lucene分布式和...

    Heritrix lucene开发自己的搜索引擎(源码)3

    检索的分页实现源代码 检索的AJAX实现源代码 安装:直接在Eclipse中选取“import-&gt;Existing Project”,该工程由于是Web工程,因此需要TomcatPlugin插件。 注:随光盘附带的mirror.rar文件是使用Heritrix从...

    JAVA上百实例源码以及开源项目源代码

    内容索引:Java源码,初学实例,二进制,文件复制  Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java...

    JAVA上百实例源码以及开源项目

    内容索引:Java源码,初学实例,二进制,文件复制  Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java...

    JAVA WEB典型模块与项目实战大全.part4

    第9章 搜索索引(Lucene+Web Spider) 第10章 在线网上支付(JSP+Swrvlet+JavaBean) 第11章 JavaWeb邮件发送系统(JSP+Servlet+JavaBean) 第12章 网络留言板(JSP+Servlet+JavaBean) 第13章 网络留言板续——...

    JAVA WEB典型模块与项目实战大全.part2(第二卷)

    第9章 搜索索引(Lucene+Web Spider) 第10章 在线网上支付(JSP+Swrvlet+JavaBean) 第11章 JavaWeb邮件发送系统(JSP+Servlet+JavaBean) 第12章 网络留言板(JSP+Servlet+JavaBean) 第13章 网络留言板续——...

    JAVA WEB典型模块与项目实战大全.part3(第三卷)

    第9章 搜索索引(Lucene+Web Spider) 第10章 在线网上支付(JSP+Swrvlet+JavaBean) 第11章 JavaWeb邮件发送系统(JSP+Servlet+JavaBean) 第12章 网络留言板(JSP+Servlet+JavaBean) 第13章 网络留言板续——...

    JAVA WEB典型模块与项目实战大全.part1(第一卷)

    第9章 搜索索引(Lucene+Web Spider) 第10章 在线网上支付(JSP+Swrvlet+JavaBean) 第11章 JavaWeb邮件发送系统(JSP+Servlet+JavaBean) 第12章 网络留言板(JSP+Servlet+JavaBean) 第13章 网络留言板续——...

    java开源包1

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包2

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包3

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包6

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包5

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包10

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包8

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

    java开源包7

    GWT Advanced Table 是一个基于 GWT 框架的网页表格组件,可实现分页数据显示、数据排序和过滤等功能! Google Tag Library 该标记库和 Google 有关。使用该标记库,利用 Google 为你的网站提供网站查询,并且可以...

Global site tag (gtag.js) - Google Analytics