Lucene教程 -------(一、初始Lucene)
一、lucene的介绍
lucene是一个全文检索的框架,apache组织提供了一个用java实现的全文检索的开源项目。功能非常的强大,api非常简单,并且有了全文检索的功能支持可以非常方便的实现根据关键字来搜索整个应用系统的内容,大大提高了用户的体验效果。使用Lucene来建立搜索功能和操作数据库一样,这样就可想而知。Lucene使用起来还是蛮方便的,那么为什么使用Lucene呢?因为如果没有使用Lucene,那么就要根据某个关键字来搜索数据库表记录,就要使用Like一个一个字符去匹配。这样子查询的方式不仅要累坏程序员不说,并且查询数据库的开销可想而知。
二、Lucene的执行流程
1、创建一个索引文件目录,然后把需要检索的信息用fild对应匹配封装成一个Document文档对象,将这个对象放入索引文件目录中(这里可以将索引文件放入到磁盘上也可以放到内存中,如果放入内存中,那么程序关闭,索引就没有了。索引一般将索引放入到磁盘上面)
2、如果发现信息有问题需要删除,那么索引文件也要删除,否则检索的时候还能查询到,这个时候需要根据索引Id去删除对应的索引
3、如果发现信息被更新了,那么索引文件也要更新,这个时候需要先将旧的索引删除然后添加新的索引。
4、最后重头戏就是全文检索了.这个和查询数据库一样。先需要创建索引读取对象,然后封装Query查询对象。调用Search方法得到检索结果。
三、使用Lucene准备条件
lucene-core-3.6.0.jar
lucene-highlighter-3.6.0.jar
lucene-memory-3.6.0.jar
下载地址:http://download.csdn.net/detail/ch656409110/5971413
四、使用Lucene实战
1、使用Luence将索引写入内存
实现思路如下
1》创建内存目录对象RAMDOMDrictory和索引写入器IndexWriter
2>l利用索引写入器将指定的数据存入内存目录对象中
3》创建IndexSearch索引查询对象,然后根据关键字封装Query查询对象
4>调用Search()方法,将查询的结果返回给TopDocs,迭代里面所有的Document对象,显示查询结果
5》关闭IndexWriter写入器,关闭RAMDirectory目录对象