`
MMSCAU
  • 浏览: 114358 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

PetStore 之 Lucene 2.4

阅读更多

之前的几天发现上不了javaeye,当时很多东西想写一下的,现在不怎么想写了,

看了看lucene ,然后参照网上的一些例子做了稍微的改动:

参考:http://lin23871.iteye.com/blog/347092

 

package com.chen.lucene.test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;

import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.queryParser.QueryParser;
import org.apache.lucene.search.Hits;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.ScoreDoc;
import org.apache.lucene.search.TopDocs;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;

public class LuceneDB {

 /**
  * @param args
  */
 private Connection conn = null;

 // 在构造函数中添加
 public LuceneDB() {
  try {
   Class.forName("com.mysql.jdbc.Driver").newInstance();
   conn = DriverManager.getConnection(
     "jdbc:mysql://localhost:3306/lucene", "root", "chen"); //
  } catch (Exception e) {
   // TODO: handle exception
   System.out.println("没有连接上数据库");
  }
 }

 // 连接数据库
 public Connection getConnection() {
  return conn;
 }

 // 关闭连接
 public void close() {
  try {
   this.conn.close();

  } catch (Exception e) {
   // TODO: handle exception
   e.printStackTrace();
  }
 }

 public static void main(String[] args) throws Exception {
  // TODO 自动生成方法存根
  // 调用对象
  LuceneDB lucene = new LuceneDB();
  // 写入索引
  IndexWriter writer = null;
  Connection conn = lucene.getConnection();
  String sql = "select * from students";
  Analyzer analyzer = new StandardAnalyzer();
  // writer=new
  // IndexWriter("D:\\index3",analyzer,true,IndexWriter.MaxFieldLength.LIMITED);
  writer = new IndexWriter("D:\\index3", analyzer, true,
    IndexWriter.MaxFieldLength.LIMITED);
  PreparedStatement ps = conn.prepareStatement(sql);
  // Statement stmt=conn.createStatement();

  ResultSet rs = ps.executeQuery(sql);
  while (rs.next()) {
   Document doc = new Document();
   doc.add(new Field("age", rs.getString("SAGE"), Field.Store.YES,
     Field.Index.TOKENIZED));
   writer.addDocument(doc);
   // System.out.println("rs查询有结果");
  }
  rs.close();
  conn.close();
  writer.optimize();
  writer.close();

  // 寻找索引
  Directory dir = FSDirectory.getDirectory("D:\\index3");
  IndexSearcher searcher = new IndexSearcher(dir);

  QueryParser parser = new QueryParser("age", new StandardAnalyzer());
  Query query = parser.parse("19"); // 有待查询的字符串进行Query对象的转换

  if (searcher != null) {
   Hits hi = searcher.search(query);
   if (hi.length() >= 0) {
    System.out.println("找到:" + hi.length() + "个关键字");
   }
  }

  TopDocs topDocs = searcher.search(query, 1);
  ScoreDoc[] hits = topDocs.scoreDocs;
  for (int i = 0; i < hits.length; i++) {
   System.out.println("-----Lucene 检索结果为:------");
   int DocId = hits[i].doc;
   Document doc = searcher.doc(DocId);
   System.out.println(doc.get("age"));
  }

 }

}

 

数据库:

 

昨天,一开始我也像参考的例子中查询“张”,但是就是不行,今天我重新打开Eclipse

,之前我用.txt来搜索中文是没有问题的,然后改成了 检索一个数字 Yeah!

 

结果:

 

找到:2个关键字
-----Lucene 检索结果为:------
19

 

 

 

 

  • 大小: 20.6 KB
分享到:
评论

相关推荐

    PetStore数据模型分析

    ### PetStore数据模型分析 #### 一、概述 在深入探讨PetStore项目的EJB层之前,我们首先要理解其核心——数据模型。PetStore是一个经典的Java应用程序案例,它模拟了一个在线宠物商店,涵盖了一系列功能,包括产品...

    PetStore_2.0_有源码

    《PetStore 2.0 有源码:深入解析与技术栈详解》 "PetStore 2.0 有源码"是一个典型的电子商务项目案例,由Sun Microsystems开发,旨在为开发者提供一个完整的Java Web应用程序示例。这个项目的核心是PetStore,一个...

    PetStore数据库

    数据库实现现代管理 多种功能 access petstore

    PetStore2.0

    【PetStore2.0】是sun公司推出的一个升级版本的在线宠物商店应用示例,它在原有的基础上进行了大幅度的技术更新,引入了EJB(Enterprise JavaBeans)3.0和Ajax(Asynchronous JavaScript and XML)技术,旨在提供更...

    java petstore java宠物店1.3.2

    Java Petstore是一个经典的Java应用程序,它是Java初学者和有经验的开发者用来学习和理解Java Web技术的示例项目。这个项目在Java社区中广为人知,因为它展示了如何使用Servlet、JSP(JavaServer Pages)以及...

    petstore1.3.1项目

    宠物商店(PetStore)是一个经典的Java Web应用程序示例,它被广泛用于教学和演示J2EE(Java 2 Platform, Enterprise Edition)技术。这个"petstore1.3.1项目"包含了一个完整的安装包和一个关于PetStore的分析文档,...

    Petstore用例图

    【宠物商店(Petstore)用例图详解】 在软件工程领域,用例图(Usecase Diagram)是一种统一建模语言(UML)中的图形表示法,它用于描述系统或子系统与系统外部参与者之间的交互关系。在"Petstore用例图"中,我们可以看到...

    PetStore 中EJB 的设计模式

    在开发如PetStore这样的大型企业级应用程序时,数据访问通常是整个系统中最复杂的部分之一。DAO模式可以帮助简化这一过程,使得开发者能够更专注于业务逻辑而不是具体的数据库操作。 此外,由于DAO模式提供了抽象层...

    JavaSwing版PetStore宠物商店项目源代码

    PetStore是典型的电子商务项目,是现在很多电商平台的雏形。本代码采用Java Swing技术实现PetStore项目。它是《Java从小白到大牛》第29章实战项目(PetStore宠物商店)配套源代码。​ ​【相关Java视频课程】: 1、...

    Python项目开发实战_PetStore宠物商店_编程案例解析实例详解课程教程.pdf

    Python面向对象编程是Python语言的基础之一,它允许开发者通过类和对象的方式组织代码,提高代码的复用性和可维护性。在PetStore项目中,可能需要创建如用户(User)、商品(Product)、购物车(Cart)、订单(Order)等类,...

    petstore

    一个AJAX的框架,基于SPRING宠物店,大家应该很熟悉! 演示网站 http://petstore.appcenter.cn/&lt;br&gt;文件较大5次上传!

    petstore J2EE 宠物店

    petstore J2EE 宠物店

    Java Swing版PetStore宠物商店项目源代码

    PetStore是典型的电子商务项目,是现在很多电商平台的雏形。本代码采用Java Swing技术实现PetStore项目。它是《Java从小白到大牛》第29章实战项目(PetStore宠物商店)配套源代码。

    petstore.rar

    宠物商城项目,如"petstore.rar"所示,是学习和理解Java企业级开发(J2EE)的一个经典实例。这个项目通常包含多个组件,旨在演示如何构建一个完整的网上商店系统,专注于宠物销售。通过这个项目,开发者可以深入理解...

    java版本的petshop【PetStore】

    【Java版PetShop【PetStore】】是一个经典的示例应用,它是Java阵营为了与微软的.NET平台竞争而设计的。这个项目旨在展示Java技术在构建企业级应用时的强大功能,特别是针对那些想要学习和理解企业级框架如Struts、...

    petStore宠物店

    petStore宠物商城。使用ssm框架+mysql编写,tomcat版本为8.0,jdk采用1.7.实现用户的登录注册。以及查询购买宠物的一整套流程。存在三种权限角色,不同角色登录可进行不同页面的跳转。后台管理员分商店管理以及用户...

    学习JavaEE的两个著名工程PetStore和Jive论坛二合一

    7. **搜索功能**:可能使用全文搜索引擎如Lucene或Solr,实现论坛内容的快速检索。 这两个项目结合在一起,可以帮助学习者深入理解JavaEE的全貌,从基础的Servlet和JSP,到复杂的EJB、Struts、Spring、Hibernate等...

    解剖Petstore用户资料修改流程.rar_petstore

    《解剖Petstore用户资料修改流程》 Petstore是一个经典的示例应用,它演示了如何在Web环境中管理和操作用户资料。在这个过程中,我们将深入探讨Petstore应用中的用户资料修改流程,以便更好地理解Web应用程序的数据...

    petstore4

    一个AJAX的框架,基于SPRING宠物店,大家应该很熟悉! 演示网站 http://petstore.appcenter.cn/&lt;br&gt;文件较大5次上传!

Global site tag (gtag.js) - Google Analytics