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目录对象
Lucene教程 -------(一、初始Lucene)的更多相关文章
- Lucene教程(转)
Lucene教程 1 lucene简介1.1 什么是lucene Lucene是一个全文搜索框架,而不是应用产品.因此它并不像www.baidu.com 或者google Desktop那么拿来 ...
- lucene教程简介
1 lucene简介 1.1 什么是lucene Lucene是一个全文搜索框架,而不是应用产品.因此它并不像www.baidu.com 或者google Desktop那么拿来就能用,它只是 ...
- Lucene教程--转载
Lucene教程 1 lucene简介1.1 什么是lucene Lucene是一个全文搜索框架,而不是应用产品.因此它并不像www.baidu.com 或者google Desktop那么拿来 ...
- Lucene教程具体解释
(建立索引)] )中生成的索引文件的存放地址.详细步骤简单介绍例如以下: 1.创建Directory对象,索引目录 2.创建IndexSearch对象,建立查询(參数是Directory对象) 3.创 ...
- lucene教程--全文检索技术
1 Lucene 示例代码 https://blog.csdn.net/qzqanzc/article/details/80916430 2 Lucene 实例教程(一)初识L ...
- Lucene 08 - 什么是Lucene的相关度排序 + Java API调整相关度
目录 1 什么是相关度 2 相关度评分 3 相关度设置 3.1 更改相关度的需求 3.2 实现需求-设置广告 1 什么是相关度 概念: 相关度指两个事物之间的关联关系(相关性). Lucene中指的是 ...
- Lucene系列四:Lucene提供的分词器、IKAnalyze中文分词器集成、扩展 IKAnalyzer的停用词和新词
一.Lucene提供的分词器StandardAnalyzer和SmartChineseAnalyzer 1.新建一个测试Lucene提供的分词器的maven项目LuceneAnalyzer 2. 在p ...
- Lucene系列二:Lucene(Lucene介绍、Lucene架构、Lucene集成)
一.Lucene介绍 1. Lucene简介 最受欢迎的java开源全文搜索引擎开发工具包.提供了完整的查询引擎和索引引擎,部分文本分词引擎(英文与德文两种西方语言).Lucene的目的是为软件开发人 ...
- Lucene教程
一:简单的示例 1.1:生成索引 1.1.1:Field.Store和Field.Index 1.1.2:为数字生成索引 1.1.3:为索引加权 1.1.4:为日期生成索引 1.2:查询 1.2.1: ...
随机推荐
- VxWorks 操作系统内存布局
在VxWorks操作系统过程中可能使用到的BootRom和VxWorks内核映像本身都可以存在两种方式:压缩的和非压缩的. 1.非压缩形式 如果没有进行压缩,则只有一次重定位,即从ROM到RAM只存在 ...
- WebService之CXF注解之二(Service接口)
ITeacherService.java: /** * @Title:ITeacherService.java * @Package:com.you.service * @Description:教师 ...
- MyEclipse提示
MyEclipse提示 1.具体如下图 2.提示原因 3.解决办法
- sea.js介绍
网址:http://seajs.org/docs/ SeaJS是一个遵循CommonJS规范的JavaScript模块加载框架,可以实现JavaScript的模块化开发及加载机制.与jQuery等Ja ...
- Java生成文件夹
Java生成文件夹 1.说明 判断文件夹是否存在,如果不存在就创建该文件夹,并打印其路径:如果存在,打印其路径 2.实现源码 /** * @Title:BuildFolder.java * @Pack ...
- Linux查看目录中的文件
Linux查看目录中的文件 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ ls examples.desktop jdk 公共的 视频 文档 音乐 java ...
- WPF基础篇之连接数据库
WPF连接DB2数据库 public void ConnectionBD2Func() { //连接数据库字符串,DB2 9.5以下版本使用Data Source=Test,否则查询找不到数据库.DB ...
- 「拆小鹤」使用 python 实现 QQ机器人服务。
使用的是python的qqbot机器人库,我其实只是实现了这个库的一个插件. 具体的说明,我觉得qqbot的官方文档,还有我的插件的注释都写得很详细了,可以直接看.所以有空再写吧. 没错我就是懒..
- BZOJ 5039: [Jsoi2014]序列维护
5039: [Jsoi2014]序列维护 Time Limit: 20 Sec Memory Limit: 256 MBSubmit: 282 Solved: 169[Submit][Status ...
- HDU1166敌兵布阵(线段树,树状数组)
题面 C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了.A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况 ...