1.全文检索概念介绍
1.1. 生活中的检索
网站搜索商品,符合条件的记录高亮、并且按某规则排列。
Windows系统中的有搜索功能
Eclipse中的帮助子系统:点击Help-----Help Contents,可以查找出相关的帮助信息。搜索的范围是Eclipse的所有帮助文件
搜索引擎,如Baidu或Google等,可以查询到互联网中的网页、PDF、DOC、PPT、图片、音乐、视频等。下图是使用百度搜索的效果。
百度搜索spring效果
以上的查询功能都类似。都是查询的文本内容,都是相同的查询方式,即找出含有指定字符串的资源,不同的只是查询范围(分别为硬盘、所有帮助文件、数据库、互联网)
对于搜索,按被搜索的资源类型,分为两种:可以转为文本和多媒体类型。
1.2. 什么是全文检索
全文检索(Full-Text Retrieval)是指以文本作为检索对象,找出含有指定词汇的文本。全面、准确和快速是衡量全文检索系统的关键指标。
关于全文检索,往往只处理文本,不处理语义。结果列表有相关度排序。并且可以对结果具有过滤高亮等能
1.3. 全文检索与数据查询的区别
1).查询的方式与速度: 全文检索的速度大大快于SQL
全文检索与数据查询的区别
2).相关度排序
3).定位不一样
4).其它
1.4. lucene介绍
我们使用Lucene,主要是做站内搜索,即对一个系统内的资源进行搜索。如BBS、BLOG中的文章搜索,网上商店中的商品搜索等。
Lucene是一个软件库,一个开发工具包,而不是一个具有完整特征的搜索应用程序。
它采用的是一种称为反向索引(inverted index)的机制。反向索引简单理解就是维护一个词/短语表,对于这个表中的每个词/短语,都有一个相关信息描述了有哪些文档包含了这个词/短语。这样在用户输入查询条件的时候,就能非常快的得到搜索结果,它本身只文本的索引和搜索。Lucene使你可以为你的应用程序添加索引和搜索能力。通过lucene学习,我们就可以为自已的项目增加全文检索的功能。