CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 扩展类

求教:一个关于lucene的全文检索问题!急

楼主rainsky203()2005-06-01 02:50:31 在 Java / J2SE / 扩展类 提问

本人正用lucene1.4.3做一个关于数据库的全文索引,数据库中的内容基本上是按id,content字段来建立的,下面是我在网上找的一个关于建立某某论坛的全文检索,跟我做的东西差不多,但用eclipse做的是没有错误,但我查询的总返回0条记录!想问问到底是什么原因?如果说是中文分词很差,但我查询英文也还是一样!如果有好的用lucene实现全文检索和查询的方法,希望赐教!  
  建立索引的代码:  
  package   org.apache.lucene.analysis.search;  
  import   java.sql.Connection;  
  import   java.sql.DriverManager;  
  import   java.sql.ResultSet;  
  import   java.sql.Statement;  
  import   org.apache.lucene.index.*;  
   
   
  public   class   indexmysql  
  {  
          public   indexmysql()  
          {  
          }  
   
          public   static   void   main(String[]   args)  
          {  
                  try  
                  {  
                          org.apache.lucene.index.IndexWriter   writer0   =   new   org.apache.lucene.index.IndexWriter  
                          ("index",new   org.apache.lucene.analysis.cn.ChineseAnalyzer(),false);  
                           
                          indexDocs(writer0);  
                          writer0.optimize();  
                          writer0.close();  
                  }    
                  catch   (Exception   e)  
                  {  
                          System.out.println("   出错了   "   +   e.getClass()   +   "\n   错误信息为:   "+   e.getMessage());  
                  }  
          }  
   
          public   static   void   indexDocs(IndexWriter   writer)   throws   Exception  
          {  
                  try  
                  {  
                          Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();  
                          String   url   =   "jdbc:odbc:driver={Microsoft   Access   Driver(*.mdb)};DBQ=f:\\DelphiBBSDataAll.mdb";  
                          Connection   conn   =   DriverManager.getConnection(url);  
                          Statement   stmt   =   conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,  
                                                                                                      ResultSet.CONCUR_UPDATABLE);  
                          ResultSet   rs   =   stmt.executeQuery("select   ID,CONTENT   from   aabb   ");  
                          while   (rs.next())  
                          {  
                                  writer.addDocument(mysqldocument.Document(rs.getString("ID"),   rs.getString("CONTENT")));  
   
                          }  
                          rs.close();  
                          stmt.close();  
                          conn.close();  
                  }    
                  catch   (Exception   ex)  
                  {  
                          System.out.println("数据库操作有问题");  
                          System.out.println(ex.getMessage());  
                          ex.printStackTrace();  
                  }  
                  System.out.println("索引创建完毕");  
                  searchmysql   x=new   searchmysql();  
                  x.SearchText("数据库");//我的查询语句  
                   
          }  
  上面用到的mysqldocument  
  package   org.apache.lucene.analysis.search;  
  import   org.apache.lucene.document.Document;  
  import   org.apache.lucene.document.Field;  
   
  public   class   mysqldocument  
  {  
          public   static   Document   Document(String   id,   String   content)  
          {  
                  Document   doc   =   new   Document();  
                  doc.add(Field.Keyword("ID",   id));  
                  doc.add(Field.Text("CONTENT",   content));  
                  return   doc;  
          }  
          public   mysqldocument()  
          {  
          }  
  }  
  查询的方法实现:  
  package   org.apache.lucene.analysis.search;  
   
  import   org.apache.lucene.document.Document;  
  import   org.apache.lucene.search.Searcher;  
  import   org.apache.lucene.search.IndexSearcher;  
  import   org.apache.lucene.search.Query;  
  import   org.apache.lucene.search.Hits;  
  import   org.apache.lucene.analysis.cn.ChineseAnalyzer;  
  import   org.apache.lucene.queryParser.QueryParser;  
   
  public   class   searchmysql  
  {  
          public   searchmysql()  
          {  
          }  
          public   void   SearchText(String   s)  
          {  
                  try  
                  {  
                          Searcher   searcher   =   new   IndexSearcher("index");  
                          ChineseAnalyzer   analyzer   =   new   ChineseAnalyzer();  
                          Query   query   =   QueryParser.parse(s,   "content",   analyzer);  
                          ///上面的“s”即是需要查询的关键字  
                          System.out.println("正在查找:   "   +   query.toString("content"));  
                          Hits   hits   =   searcher.search(query);  
                          System.out.println(hits.length()   +   "   total   matching   documents");  
                          java.text.NumberFormat   format   =   java.text.NumberFormat   .getNumberInstance();  
                          for   (int   i   =   0;   i   <   hits.length();   i++)  
                          {  
                                  //开始输出查询结果  
                                  Document   doc   =   hits.doc(i);  
                             
                                  System.out.println(doc.get("ID"));  
                                  System.out.println("准确度为:"   +   format.format(hits.score(i)   *   100.0)   +   "%");  
                                  System.out.println(doc.get("CONTENT"));  
                          }  
                  }    
                  catch   (Exception   e)  
                  {  
                          System.out.println("   出错了   "   +   e.getClass()   +   "\n   错误信息为:   "  
                                          +   e.getMessage());  
                  }  
          }  
  }    
  问题点数:0、回复次数:0Top

相关问题

  • 全文检索(急)
  • 急!!!!!!急~~~~~~ 跪求 关于 lucene 全文检索 插件 资料
  • 全文检索问题,急!
  • 全文检索
  • 急、急,数据库全文检索的问题
  • 谁能做 站内全文检索 服务????????急........
  • 关于SQL全文检索
  • 如何做全文检索?
  • 全文检索的问题?
  • 文件的全文检索

关键词

  • lucene
  • 检索
  • 查询
  • apache
  • sql
  • 全文检索
  • writer0
  • indexwriter
  • 建立
  • org

得分解答快速导航

  • 帖主:rainsky203

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo