之前的几天发现上不了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项目的EJB层之前,我们首先要理解其核心——数据模型。PetStore是一个经典的Java应用程序案例,它模拟了一个在线宠物商店,涵盖了一系列功能,包括产品...
《PetStore 2.0 有源码:深入解析与技术栈详解》 "PetStore 2.0 有源码"是一个典型的电子商务项目案例,由Sun Microsystems开发,旨在为开发者提供一个完整的Java Web应用程序示例。这个项目的核心是PetStore,一个...
数据库实现现代管理 多种功能 access petstore
【PetStore2.0】是sun公司推出的一个升级版本的在线宠物商店应用示例,它在原有的基础上进行了大幅度的技术更新,引入了EJB(Enterprise JavaBeans)3.0和Ajax(Asynchronous JavaScript and XML)技术,旨在提供更...
Java Petstore是一个经典的Java应用程序,它是Java初学者和有经验的开发者用来学习和理解Java Web技术的示例项目。这个项目在Java社区中广为人知,因为它展示了如何使用Servlet、JSP(JavaServer Pages)以及...
宠物商店(PetStore)是一个经典的Java Web应用程序示例,它被广泛用于教学和演示J2EE(Java 2 Platform, Enterprise Edition)技术。这个"petstore1.3.1项目"包含了一个完整的安装包和一个关于PetStore的分析文档,...
【宠物商店(Petstore)用例图详解】 在软件工程领域,用例图(Usecase Diagram)是一种统一建模语言(UML)中的图形表示法,它用于描述系统或子系统与系统外部参与者之间的交互关系。在"Petstore用例图"中,我们可以看到...
在开发如PetStore这样的大型企业级应用程序时,数据访问通常是整个系统中最复杂的部分之一。DAO模式可以帮助简化这一过程,使得开发者能够更专注于业务逻辑而不是具体的数据库操作。 此外,由于DAO模式提供了抽象层...
PetStore是典型的电子商务项目,是现在很多电商平台的雏形。本代码采用Java Swing技术实现PetStore项目。它是《Java从小白到大牛》第29章实战项目(PetStore宠物商店)配套源代码。 【相关Java视频课程】: 1、...
Python面向对象编程是Python语言的基础之一,它允许开发者通过类和对象的方式组织代码,提高代码的复用性和可维护性。在PetStore项目中,可能需要创建如用户(User)、商品(Product)、购物车(Cart)、订单(Order)等类,...
一个AJAX的框架,基于SPRING宠物店,大家应该很熟悉! 演示网站 http://petstore.appcenter.cn/<br>文件较大5次上传!
petstore J2EE 宠物店
PetStore是典型的电子商务项目,是现在很多电商平台的雏形。本代码采用Java Swing技术实现PetStore项目。它是《Java从小白到大牛》第29章实战项目(PetStore宠物商店)配套源代码。
宠物商城项目,如"petstore.rar"所示,是学习和理解Java企业级开发(J2EE)的一个经典实例。这个项目通常包含多个组件,旨在演示如何构建一个完整的网上商店系统,专注于宠物销售。通过这个项目,开发者可以深入理解...
【Java版PetShop【PetStore】】是一个经典的示例应用,它是Java阵营为了与微软的.NET平台竞争而设计的。这个项目旨在展示Java技术在构建企业级应用时的强大功能,特别是针对那些想要学习和理解企业级框架如Struts、...
petStore宠物商城。使用ssm框架+mysql编写,tomcat版本为8.0,jdk采用1.7.实现用户的登录注册。以及查询购买宠物的一整套流程。存在三种权限角色,不同角色登录可进行不同页面的跳转。后台管理员分商店管理以及用户...
7. **搜索功能**:可能使用全文搜索引擎如Lucene或Solr,实现论坛内容的快速检索。 这两个项目结合在一起,可以帮助学习者深入理解JavaEE的全貌,从基础的Servlet和JSP,到复杂的EJB、Struts、Spring、Hibernate等...
《解剖Petstore用户资料修改流程》 Petstore是一个经典的示例应用,它演示了如何在Web环境中管理和操作用户资料。在这个过程中,我们将深入探讨Petstore应用中的用户资料修改流程,以便更好地理解Web应用程序的数据...
一个AJAX的框架,基于SPRING宠物店,大家应该很熟悉! 演示网站 http://petstore.appcenter.cn/<br>文件较大5次上传!