转载目的:因为以后要用solr工具,生成二级索引到hadoop中快速查询。而solr是基于lucene开发的。
Lucene入门基础教程
简介
[日期:2014-06-08] | 来源:Linux社区 作者:xinxinqiu |
1.1 全文检索的概念
1) 从大量的信息中快速、准确地查找出要的信息 2) 搜索的内容是文本信息(不是多媒体) 3) 搜索的方式:不是根据语句的意思进行处理。如果要搜索的文本为” 2012年的春晚有赵本山吗”,那么含有这些词(2012年、春晚、赵本山)就能搜索出来。每一个词都是关键词。 4) 全面、快速、准确是衡量全文检索系统的关键指标。 5) 概括: a) 只处理文本 b) 不处理语义c) 搜索时英文不区分大小写
d) 结果列表有相关度排序全文检索应用场景:
* 信息量必须特别大 * 做一个全文检索的指标 快速 准确站内搜索
通常用于在大量数据出现的系统中,找出你想要的资料。常见的有 a) bbs的关键字搜索 baidu贴吧 林志玲 、胡汉三 b) 商品网站的搜索等 中关村在线 商品的名称、电脑硬件名称 (CPU) c) 文件管理系统 对文件的搜索功能。Window的文件搜索 1.3.2垂直搜索 a) 是针对 某个行业的搜索引擎 b) 是搜索引擎的细分和延伸 c) 是针对网页库中的专门信息的整合 d) 其特点是专、深、精,并具有行业色彩 e) 可以应用于购物搜索、×××搜索、人才搜索 1.1 全文检索与数据库搜索的区别 1.4.1数据库的搜索 类似:select * from 表名 where 字段名 like ‘%关键字%’ 例如:select * from article where content like’%here%’ 结果: where here shere 缺点: 1) 搜索效果比较差 2) 在搜索的结果中,有大量的数据被搜索出来,有很多数据是没有用的。 3) 查询速度在大量数据的情况下是很难做到快速的。 1.4.2全文检索 1) 搜索结果按相关度排序:意味着只有前几个页面对于用户来说是比较有用的,其他的结果与用户想要的答案很可能相差甚远。数据库搜索是做不到相关度排序的。 2) 因为全文检索是采用引索的方式,所以在速度上肯定比数据库方式like要快。 3) 所以数据库不能代替全文检索。Lucene 的详细介绍:
Lucene 的下载地址:基于Lucene多索引进行索引和搜索
Lucene 实战(第2版) 中文版 配套源代码
Lucene 实战(第2版) PDF高清中文版
使用Lucene-Spatial实现集成地理位置的全文检索
Lucene + 分布式搜索运行框架 Nut 1.0a9
Lucene + Hadoop 分布式搜索运行框架 Nut 1.0a8
Lucene + Hadoop 分布式搜索运行框架 Nut 1.0a7
Project 2-1: 配置Lucene, 建立WEB查询系统[ 10.10]
全文检索只是一个概念,而具体实现有很多框架,lucene是其中的一种。Lucene的主页。本文用的是3.0.1版本。
互联网搜索结构图 说明: 1) 当用户打开www.baidu.com网页搜索某些数据的时候,不是直接找的网页,而是找的百度的索引库。索引库里包含的内容有索引号和摘要。当我们打开www.baidu.com时,看到的就是摘要的内容。 2) 百度的索引库的索引和互联网的某一个网站对应。 3) 当用户数据要查询的关键字,返回的页面首先是从索引库中得到的。 4) 点击每一个搜索出来的内容进行相关网页查找,这个时候才找的是互联网中的网页。 2.2 lucene的大致结构框图 说明: 1) 在数据库中,数据库中的数据文件存储在磁盘上。索引库也是同样,索引库中的索引数据也在磁盘上存在,我们用Directory这个类来描述。 2) 我们可以通过API来实现对索引库的增、删、改、查的操作。 3) 在数据库中,各种数据形式都可以概括为一种:表。在索引库中,各种数据形式也可以抽象出一种数据格式为Document。 4) Document的结构为:Document(List<Field>) 5) Field里存放一个键值对。键值对都为字符串的形式。 6) 对索引库中索引的操作实际上也就是对Document的操作。