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


            

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. 案例分析:什么时全文检索,如何实现全文检索   1.1 案例   实现一个文件的搜索功能,通过关键字搜索文件...
    东方舵手阅读 1,204评论 0 1
  • Solr&ElasticSearch原理及应用 一、综述 搜索 http://baike.baidu.com/it...
    楼外楼V阅读 7,339评论 1 17
  • 目录结构:1.全文检索 2.Lucene入门3.Lucene进阶 全文检索 一, 生活中的搜索:1.Win...
    CoderZS阅读 1,728评论 0 12
  • 本文我将为大家讲解全文检索技术——Lucene,现在这个技术用到的比较多,我觉得大家还是应该掌握一下,不说多精通,...
    呵呵兮子阅读 840评论 0 2
  • 1.搜索技术理论基础 1.1. 为什么要学习Lucene 原来的方式实现搜索功能,我们的搜索流程如下图: 上图就是...
    SingleXu阅读 1,161评论 0 5