1,Lucene是什么
lucene是apache下的一个开放源代码的全文检索引擎工具包(jar)
原理:新华字典,
2,Lucene应用领域有哪些
1. 互联网全文检索引擎(比如百度,谷歌,必应)
2. 站内全文检索引擎(淘宝,京东搜索功能)
3. 优化数据库查询(因为数据库中使用like关键字是全表扫描也就是顺序扫描算法,查询慢)
3,数据的分类和搜索方法有哪些
结构化数据: 指具有固定格式或有限长度的数据,如数据库等;
非结构化数据: 指不定长或无固定格式的数据, 如邮件、word 文档中的数据等;
运行Lucene
1,Lucene开发环境
2,使用的jar包
Lucene包:
lucene-core-4.10.3.jar 核心包
lucene-analyzers-common-4.10.3.jar 分词包
lucene-queryparser-4.10.3.jar 查询包
其它:
commons-io-2.4.jar
junit-4.9.jar
第一步:pom.xml引入依赖
3, Lucene实现全文检索
第二步:创建索引
1、获得原始文档
原始文档:是指要索引和搜索的内容。原始内容包括互联网上的网页、数据库中的数据、磁盘上的文件等。
本案例我们要获取磁盘上文件的内容,可以通过文件流来读取文本文件的内容,对于pdf、doc、xls等文件可通过第三方提供的解析工具读取文件内容,比如Apache POI读取doc和xls的文件内容。
2、创建文档对象
获取原始文档的目的是为了索引,在索引前需要将原始内容创建成文档对象(Document),Document中包括一些Field(file_name文件名称、file_path文件路径、file_size文件大小、file_content文件内容),如下图:
3、分析文档(分词)
4、创建索引
索引结构:域名:词
索引作用:它里面有指针指向这个词来源的文档
第三步:查询索引
创建索引和查询索引时所用的分词器必须一致,如下案例中搜索关键字“数据结构”:
结构化数据: 有固定格式或有限长度的数据
1,指定索引库位置
2,指定查询条件
3,查询遍历结果