首页 > 程序开发 > 综合编程 > 其他综合 >

Lucene学习(一)

2017-01-10

Lucene学习。Lucene是Apache下的一个开源的全文检索引擎工具包。它为开发人员提供一个简单易用的工具包(类库),以方便的在目录系统中实现全文检索的功能。

1、 Lucene介绍

1.1 什么是Lucene?

Lucene是Apache下的一个开源的全文检索引擎工具包。它为开发人员提供一个简单易用的工具包(类库),以方便的在目录系统中实现全文检索的功能。

Lucene和搜索引擎是不同的,Lucene是一套用java和其它语言写的全文检索的工具包。它为程序员提供很多个API接口去调用,可以简单的理解为一套实现全文检索的类库。搜索引擎是一个全文检索系统,它是一个单独运行的软件系统。

1.2 全文检索

全文检索首先将要检索的目标文档中的词提取出来,组成索引,通过查询索引达到搜索目标文档的目的,这种先建立索引,再对索引进行搜索的过程就叫全文检索(Full-text search)。

2、Lucene实现全文检索的流程

这里写图片描述

全文检索的流程分为两大部分:索引流程、搜索流程

索引流程:采集数据—》构建文档对象—》分析文档(分词)—》创建索引

搜索流程:用户通过搜索界面—》创建查询—》执行搜索,搜索器从索引库搜索—》渲染搜索结果

3、索引流程

对文档索引的过程,就是将用户要搜索的文档内容进行索引,然后把索引存储在索引库(index)中。

3.1 为什么要采集数据

全文检索要检索的数据信息格式多种多样,网页(html)、音乐(mp3)、视频(avi)、电子书(pdf)等。全文检索搜索的这些数据称为非结构化数据。

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

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

如何对结构化数据搜索?

由于结构化数据是决定格式,所以就可以针对固定格式的数据设定算法来搜索,比如数据库like查询,like查询采用顺序扫描法,使用关键字匹配内容,对于内容量大的like查询速度慢。

如何对非结构化数据搜索?

需要将所有要搜索的非结构化数据通过技术手段采集到一个固定的地方,将这些非结构化的数据想办法组成结构化的数据,再以一定的算法去搜索。

3.2 如何采集数据?

采集数据有哪些技术?

1、对于互联网上网页采用http将网页抓取到本地生成html文件。

2、如果数据在数据库中就连接数据库读取表中的数据

3、如果数据是文件系统中的某个文件,就通过文件系统读取文件的内容。

相关文章
最新文章
热点推荐