




免费预览已结束,剩余3页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
我们以前经常碰到搜索数据库的内容;用like 的sql语句;如果数据量大而且多表查询时;用lucene2那就可以解决速度问题。lucene2搜索photo表的title,username,tagname,desr内容;用一个例题来说明更直观;此例题能搜索中文分词;(需要mysql5的jdbc包和lucene2的包):1、数据库我用mysql5;建一个photo表;数据库名是test。photo表有一下几个字段:CREATE TABLE photo (photo_id int(11) NOT NULL auto_increment,title varchar(11) default NULL,address varchar(50) default NULL,descr text,user_id int(11) default NULL,user_name varchar(11) default NULL,upload_time date default NULL,tag_name varchar(11) default NULL,PRIMARY KEY (photo_id) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=REDUNDANT;2、java文件有4个:文件Photo.java是数据库的photo表的操作文件;内容如下:import java.sql.Connection;import java.util.ArrayList;import java.util.Date;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;public class Photo private long photoId;private String title;private String description;private String address;private String userName;private long userId;private String tag;private Date date;public String getAddress() return address;public void setAddress(String address) this.address = address;public String getDescription() return description;public void setDescription(String description) this.description = description;public long getPhotoId() return photoId;public void setPhotoId(long photoId) this.photoId = photoId;public String getTag() return tag;public void setTag(String tag) this.tag = tag;public String getTitle() return title;public void setTitle(String title) this.title = title;public long getUserId() return userId;public void setUserId(long userId) this.userId = userId;public String getUserName() return userName;public void setUserName(String userName) this.userName = userName;public static Photo loadPhotos(Connection con) throws Exception ArrayList list = new ArrayList();PreparedStatement pstm = null;ResultSet rs = null;String sql = select photo_id,title,address,descr,user_id,user_name,upload_time,tag_name from photo;try pstm = con.prepareStatement(sql);rs = pstm.executeQuery();while (rs.next() Photo photo = new Photo();photo.setPhotoId(rs.getLong(1);photo.setTitle(rs.getString(2);photo.setAddress(rs.getString(3);photo.setDescription(rs.getString(4);photo.setUserId(rs.getLong(5);photo.setUserName(rs.getString(6);photo.setDate(rs.getTimestamp(7);photo.setTag(rs.getString(8);list.add(photo);System.out.println(com.upolestar.kmpm.po.Photo.java =+list.size(); catch (SQLException e) e.printStackTrace(); finally if (rs != null) rs.close();if (pstm != null) pstm.close();return (Photo) list.toArray(new Photolist.size();public Date getDate() return date;public void setDate(Date date) this.date = date;文件IndexerFile.java是把数据库的内容备份成索引文件到磁盘中去;内容如下:package com.upolestar.kmpm.service;import java.io.IOException;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 com.upolestar.kmpm.po.Photo;public class IndexerFile public static int indexFile(String indexDir, Photo list)throws IOException IndexWriter writer = new IndexWriter(indexDir, new StandardAnalyzer(),true);writer.setUseCompoundFile(false);for (int i = 0; i 0)doc.add(new Field(tag, listi.getTag(), Field.Store.YES,Field.Index.TOKENIZED);doc.add(new Field(uploadTime, listi.getDate().toLocaleString(), Field.Store.YES,Field.Index.TOKENIZED);writer.addDocument(doc);int numIndexed = writer.docCount();writer.optimize();writer.close();return numIndexed;文件SearcherFile.java是搜索磁盘索引文件内容的;内容如下:package com.upolestar.kmpm.service;import java.io.IOException;import org.apache.lucene.analysis.Analyzer;import org.apache.lucene.analysis.standard.StandardAnalyzer;import org.apache.lucene.document.Document;import org.apache.lucene.queryParser.MultiFieldQueryParser;import org.apache.lucene.queryParser.ParseException;import org.apache.lucene.search.Hits;import org.apache.lucene.search.Query;import org.apache.lucene.search.Searcher;public class SearcherFile public static void search(Searcher searcher, String q)throws IOException, ParseException Analyzer analyzer = new StandardAnalyzer();String fields = title, description, tag, userName ;Query query = MultiFieldQueryParser.parse(q, fields, analyzer);Hits hits = searcher.search(query);System.out.println(SearcherFile=+hits.length();for (int i = 0; i hits.length(); i+) Document doc = hits.doc(i);System.out.println(doc.get(photoId) + =+ doc.get(uploadTime)+ = + doc.get(title)+ = + doc.get(description)+ = + doc.get(tag)+ = + doc.get(userName);文件test.java是操作的主文件;内容如下:package com.upolestar.kmpm.test;import java.io.IOException;import java.sql.Connection;import java.sql.SQLException;import java.util.Date;import org.apache.lucene.queryParser.ParseException;import org.apache.lucene.search.IndexSearcher;import org.apache.lucene.search.Searcher;import com.upolestar.kmpm.po.Photo;import com.upolestar.kmpm.service.IndexerFile;import com.upolestar.kmpm.service.SearcherFile;public class Test public final static String indexDir = D:TestLucene;private static Connection getConnection() Connection conn = null;String url = jdbc:mysql:/localhost:3306/opencms;String userName = root;String password = 1111;try Class.forName(com.mysql.jdbc.Driver);conn = java.sql.DriverManager.getConnection(url, userName, password); catch (Exception e) e.printStackTrace();System.out.println(Error Trace in getConnection() : + e.getMessage();return conn;public static void main(String args) throws IOException, ParseException,SQLException index();/ 做索引Searcher searcher = null;try searcher = new IndexSearcher(indexDir);search(searcher);/ 搜索 catch (Exc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智能穿戴健康监测App创新创业项目商业计划书
- 教师招聘之《幼儿教师招聘》强化训练高能附答案详解(完整版)
- 教师招聘之《小学教师招聘》通关考试题库附完整答案详解【名师系列】
- 教师招聘之《小学教师招聘》通关考试题库附答案详解【培优b卷】
- 报社面试题目及答案
- 2025年教师招聘之《幼儿教师招聘》题库试题含答案详解(满分必刷)
- 深圳交警考试题库及答案
- 合成孔径雷达(SAR)伪装目标特性剖析与伪装效果量化评估体系构建
- 2025内蒙古呼伦贝尔林业集团有限公司招聘工作人员5人备考有答案详解
- 2025年教师招聘之《幼儿教师招聘》考前冲刺测试卷包附答案详解(突破训练)
- 《城市轨道交通车辆段(停车场)物业服务标准》
- 初级招标采购从业人员《招标采购法律法规》近年考试真题试题库(含答案)
- 教学评一体化理念
- 人音版七年级音乐上册教案全册
- ECE-R90-欧盟第3版-中文版(R090r3e-01)
- 2023学年武汉市武昌区九年级语文上学期期中检测试卷附答案
- 渠道衬砌施工方案(渠道预制混凝土块)
- 不交社保劳动合同模板
- 2024年云南省中考数学试题(含答案)
- GB 14102.1-2024防火卷帘第1部分:通用技术条件
- 越野跑策划方案
评论
0/150
提交评论