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: ...
随机推荐
- mysql常用基础操作语法(一)~~对库的操作【命令行模式】
1.创建数据库:create Database databaseName;例如需要创建mysqlTest数据库,create Database mysqlTest; 由此还可以看出,这里的名称是不分大 ...
- 不使用spring的情况下用java原生代码操作mongodb数据库的两种方式
由于更改了mongodb3.0数据库的密码,导致这几天storm组对数据进行处理的时候,一直在报mongodb数据库连接不上的异常. 主要原因实际上是和mongodb本身无关的,因为他们改的是配置 ...
- R语言︱函数使用技巧(循环、if族/for、switch、repeat、ifelse、stopifnot)
每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 后续加更内容: 应用一:if族有哪些成员呢?- ...
- strcmp函数实现
/* 功能:比较字符串s1和s2大小. 一般形式:int strcmp(字符串1,字符串2) 说明: 当s1<s2时,返回-1 当s1=s2时,返回 0 当s1>s2时,返回 1 即两个字 ...
- freemarker写select组件报错总结(二)
1.错误描述 六月 25, 2014 11:32:49 下午 freemarker.log.JDK14LoggerFactory$JDK14Logger error 严重: Template proc ...
- (二十六)svn的问题二
上周五请了一天假,电脑放在公司没有带回来,三天的时间都没有看代码,使得我电脑上的东西与svn上相差了太多,因为不一样,所以就要更新同步,因为要更新同步的东西多,便又出了一些问题,也因此对svn有了更进 ...
- Caused by: java.lang.ClassNotFoundException: org.jboss.logging.BasicLogger
1.错误描述 usage: java org.apache.catalina.startup.Catalina [ -config {pathname} ] [ -nonaming ] { -help ...
- JSP中的编译指令和动作指令的区别
JSP中的编译指令和动作指令的区别 1.编译指令是通知Servlet引擎的处理消息,而动作指令只是运行时的脚本动作 2.编译指令是在将JSP编译成Servlet时起作用,而动作指令可替换成JSP脚本, ...
- Flex中利用单选按钮切换柱状图横纵坐标以及描述
1.问题描述 一组单选按钮,有周和月之分,选择"周",柱状图横坐标显示的是周,纵坐标显示的是人数:选择"月",柱状图横坐标显示的月,纵坐标显示的是比率. 2.演 ...
- POJ 2104 K-th Number 主席树
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> us ...