SAST Weekly | 初探Lucene : java嵌入式搜索引擎中的一等公民
Posted 无限之声
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SAST Weekly | 初探Lucene : java嵌入式搜索引擎中的一等公民相关的知识,希望对你有一定的参考价值。
SAST weekly是由电子工程系学生科协推出的科技系列推送,内容涵盖信息领域技术科普、研究前沿热点介绍、科技新闻跟进探索等多个方面,帮助同学们增长姿势,开拓眼界,每周更新,欢迎关注,欢迎愿意分享知识的同学投稿eesast@mail.tsinghua.edu.cn
lucene简介
Lucene是一款高性能的、可扩展的信息检索(IR)工具库,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎。Lucene提供了一个简单却强大的应用程式接口,能够做全文索引和搜寻。在Java开发环境里Lucene是一个成熟的免费开源工具。就其本身而言,Lucene是当前以及最近几年最受欢迎的免费Java信息检索程序库。
lucene安装及环境配置
第1步 - 安装Java开发工具包(JDK)
一定要注意JDK版本要与lucene版本匹配,因为下面用的lucene是4.0.0版本的,所以用的的JDK是1.8(理论上1.6以上就可)。请自行百度如何添加环境变量。安装完毕后,ctrl+R输入cmd打开命令行窗口,在cmd窗口中输入java,如果提示下面的内容,表面jdk已经安装成功了。
如果提示'java' 不是内部或外部命令,也不是可运行的程序或批处理文件。表明jdk没有安装成功。
输入java -version顺便可以查看java版本
第2步 - 安装Eclipse IDE
第3步 - 安装Lucene
注意下载.zip文件。解压后放置在合适位置即可。使用 Eclipse 不需设置 CLASSPATH,因为所有的设置已通过Eclipse进行。
第4步 - java搭建lucene需要的jar包
lucene全文检索需要的4个jar包(在之前下载的文件夹中):
① Lucene-core-4.0.0.jar
② Lucene-analyzers-common-4.0.0.jar
③ Lucene-highlighter-4.0.0.jar
④ Lucene-queryparser-4.0.0.jar
具体操作
鼠标右键点击已经建好的project(不是package或者class)选择最下面properties,出现下图,选择Java Build Path, 然后选择Add External JARs,将下载的lucene文件夹中前面提到的四个包导入。
导入成功后应该为下图所示:
一切准备工作就绪,可以开始写代码了!
lucene之初入江湖
1、是什么是全文检索?
比如,我们一个文件夹中有很多的文件,记事本、world、Excel、pdf,我们想根据其中的关键词搜索包含的文件。当输入“我爱科协”,所有内容含有Lucene的文件就会被检查出来。这就是所谓的全文检索。
2、Lucene的架构设计
通过上面这张图,我们可以看到Lucene的使用主要体现在两个步骤:索引流程、搜索流程。
step 1:索引流程:即采集数据构建文档对象分析文档(分词)创建索引。
step 2:搜索流程:即用户通过搜索界面创建查询执行搜索,搜索器从索引库搜索渲染搜索结果。
3、Lucene索引文件结构
文档域:非结构化的数据统一格式为document文档格式,一个文档可以有多个field域,不同的文档,其field的个数可以不同,建议相同类型的文档包括相同的field。
索引域:将Document中的Field的内容进行分词,将分好的词创建索引,索引=Field域名:词。 索引域用于搜索,搜索程序将从索引域中搜索一个一个词,根据词找到对应的文档(Document)。
4、Lucene创建索引过程
词法分析器要借助的词法分析器Analyzer来实现。这里面使用的是标准的词法分析器。
IndexWriter是索引过程的核心组件,通过它可以创建新索引、更新索引、删除索引操作。IndexWriter需要通过Directory对索引进行存储操作。
Directory描述了索引的存储位置,底层封装了I/O操作,负责对索引进行存储。它是一个抽象类,它的子类常用的包括FSDirectory(在文件系统存储索引)、RAMDirectory(在内存存储索引)。
具体步骤
step 1:使用分词器(Analyzer)按规则取出一段文本包含的所有词,并进行本地文件存储;
step 2:创建IndexWriter,写入索引文件;
step 3:内容提取,进行索引的存储;
step 4:打开存储位置并创建搜索器;
step 5:进行关键字查询;
step 6:关闭查询器等;
ireader.close( );
directory.close( );
lucene之小刀牛试
还没入门的我建了六个txt文件,其中1,4,6带有SAST Weekly,尝试检索SAST Weekly:
检索结果
结语
对lucnen有了基本的了解后,大家就可以去官网下载demo的源码了,记得还要导入lucene-demo-4.0.0.jar~
写完推送,我好像lucene入门了???
撰稿:苑苑
审核:黄铭涛
以上是关于SAST Weekly | 初探Lucene : java嵌入式搜索引擎中的一等公民的主要内容,如果未能解决你的问题,请参考以下文章