一、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)的更多相关文章

  1. Lucene教程(转)

    Lucene教程 1 lucene简介1.1 什么是lucene    Lucene是一个全文搜索框架,而不是应用产品.因此它并不像www.baidu.com 或者google Desktop那么拿来 ...

  2. lucene教程简介

    1 lucene简介 1.1 什么是lucene     Lucene是一个全文搜索框架,而不是应用产品.因此它并不像www.baidu.com 或者google Desktop那么拿来就能用,它只是 ...

  3. Lucene教程--转载

    Lucene教程 1 lucene简介1.1 什么是lucene    Lucene是一个全文搜索框架,而不是应用产品.因此它并不像www.baidu.com 或者google Desktop那么拿来 ...

  4. Lucene教程具体解释

    (建立索引)] )中生成的索引文件的存放地址.详细步骤简单介绍例如以下: 1.创建Directory对象,索引目录 2.创建IndexSearch对象,建立查询(參数是Directory对象) 3.创 ...

  5. lucene教程--全文检索技术

    1    Lucene 示例代码        https://blog.csdn.net/qzqanzc/article/details/80916430 2   Lucene 实例教程(一)初识L ...

  6. Lucene 08 - 什么是Lucene的相关度排序 + Java API调整相关度

    目录 1 什么是相关度 2 相关度评分 3 相关度设置 3.1 更改相关度的需求 3.2 实现需求-设置广告 1 什么是相关度 概念: 相关度指两个事物之间的关联关系(相关性). Lucene中指的是 ...

  7. Lucene系列四:Lucene提供的分词器、IKAnalyze中文分词器集成、扩展 IKAnalyzer的停用词和新词

    一.Lucene提供的分词器StandardAnalyzer和SmartChineseAnalyzer 1.新建一个测试Lucene提供的分词器的maven项目LuceneAnalyzer 2. 在p ...

  8. Lucene系列二:Lucene(Lucene介绍、Lucene架构、Lucene集成)

    一.Lucene介绍 1. Lucene简介 最受欢迎的java开源全文搜索引擎开发工具包.提供了完整的查询引擎和索引引擎,部分文本分词引擎(英文与德文两种西方语言).Lucene的目的是为软件开发人 ...

  9. Lucene教程

    一:简单的示例 1.1:生成索引 1.1.1:Field.Store和Field.Index 1.1.2:为数字生成索引 1.1.3:为索引加权 1.1.4:为日期生成索引 1.2:查询 1.2.1: ...

随机推荐

  1. windows 下安装或者卸载memcache

    1.安装到系统服务中: 在doc中:执行此软件 memcached.exe -d install(如果提示错误,要找到cmd.exe用管理员身份打开) 2.卸载: 在doc中:执行此软件 memcac ...

  2. 《实战Nginx》读书笔记

    最近今天读了一本书叫做<实战Nginx:取代Apache的高性能Web服务器>,看后对Nginx 了解了不少.但是还有很多地方不是很了解.不过此书可以作为一本参考手册来使用,里面的讲解很详 ...

  3. VxWorks下USB驱动总结1

    1.USB设备 物理特征:4条电缆,电源线.地线.数据线.脉冲线; 速 度:低速1.5Mbps,全速12Mbps,高速480Mbps; 规范版本:1998年USB1.1,2000年USB2.0; 连 ...

  4. stm32开发之标准库的介绍

    1 STM32标准外设库概述 STM32标准外设库之前的版本也称固件函数库或简称固件库,是一个固件函数包,它由程序.数据结构和宏组成,包括了微控制器所有外设的性能特征.该函数库还包括每一个外设的驱动描 ...

  5. return *this 与return this的区别

    return *this返回当前对象的引用(也就是返回当前对象) return this返回当前对象的地址. #include <iostream> using namespace std ...

  6. freemark标签中输出boolean值

    private boolean showHeader=true; public boolean getShowHeader(){ return this.showHeader; } public bo ...

  7. C# 图解教程 第二章 C#编程概述

    C#编程概述 一个简单的C#程序标识符关键字Main:程序的起始点从程序输出文本注释 C#编程概述 一个简单的C#程序 标识符 标识符是一种字符串,用来命名变量.方法.参数和许多后面将要阐述的其他程序 ...

  8. ASP.NET 后台打开新页面

    [TOC] Response.Write 这是最常见的后台打开新页面的方法. Response.Write("<script>window.open('~/FileView.as ...

  9. ThreadPoolExecutor源码分析

    ThreadPoolExecutor是Java自带线程池FixedThreadPool(固定大小). SingleThreadExecutor(单线程).CacheThreadPool (无限大)的具 ...

  10. unity案例入门(一)(拾取游戏)

    1. 案例简述 这个案例实现一个非常简单的拾取宝物游戏,主角是一个小球,玩家通过键盘控制小球拾取全部宝物. 2. 键盘控制物体移动 private Rigidbody rd; public int f ...