2019-10-15-全文搜索技术-Lucene1

1,Lucene是什么

        lucene是apache下的一个开放源代码的全文检索引擎工具包(jar)

        原理:新华字典,

2,Lucene应用领域有哪些

        1.      互联网全文检索引擎(比如百度,谷歌,必应)

        2.      站内全文检索引擎(淘宝,京东搜索功能)

        3.      优化数据库查询(因为数据库中使用like关键字是全表扫描也就是顺序扫描算法,查询慢)

3,数据的分类和搜索方法有哪些

        结构化数据: 指具有固定格式或有限长度的数据,如数据库等;

        非结构化数据: 指不定长或无固定格式的数据, 如邮件、word 文档中的数据等;

                                运行Lucene

1,Lucene开发环境

官网:http://lucene.apache.org下载:http://lucene.apache.org/core/downloads.html      

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,查询遍历结果


            

你可能感兴趣的:(2019-10-15-全文搜索技术-Lucene1)