1.1 常见的全文检索

1) 在window系统中,可以指定磁盘中的某一个位置来搜索你想要得到的东西。

2) 在myeclipse中,点击Help->Help Contents,可以利用搜索功能找到你要查询的帮助文档。

3) 在百度和google 中,可以搜索互联网中的信息,有:网页、pdf、word音频、视频等内容。

4) 在bbs系统中,有搜索文章的功能。

以上的查询功能都相似,都是查询的文本内容,查询方法也相似即找出含有指定字符串的资源。只不过是查询的范围不一样。(硬盘、帮助文件、互联网)

1.2 全文检索的概念

1) 从大量的信息中快速、准确地查找出要的信息

2) 搜索的内容是文本信息(不是多媒体)

3) 搜索的方式:不是根据语句的意思进行处理。如果要搜索的文本为” 2012年的春晚有赵本山吗”,那么含有这些词(2012年、春晚、赵本山)就能搜索出来。每一个词都是关键词。

4) 全面、快速、准确是衡量全文检索系统的关键指标。

5) 概括:

a) 只处理文本

b) 不处理语义

c) 搜索时英文不区分大小写

d) 结果列表有相关度排序

1.3 全文检索的应用场景

1.3.1站内搜索

通常用于在大量数据出现的系统中,找出你想要的资料。常见的有
a) bbs的关键字搜索
baidu贴吧      林志玲 、胡汉三
b) 商品网站的搜索等
中关村在线     商品的名称、电脑硬件名称 (CPU)
c) 文件管理系统
对文件的搜索功能。Window的文件搜索

1.3.2垂直搜索

a) 是针对 某个行业的搜索引擎
b) 是搜索引擎的细分和延伸
c) 是针对网页库中的专门信息的整合
d) 其特点是专、深、精,并具有行业色彩
e) 可以应用于购物搜索、房产搜索、人才搜索

1.4 全文检索与数据库搜索的区别

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要快。
所以数据库不能代替全文检索

2.Lucene大致结构

1.5 互联网搜索结构框图


说明:

1) 当用户打开www.baidu.com网页搜索某些数据的时候,不是直接找的网页,而是找的百度的索引库。索引库里包含的内容有索引号和摘要。当我们打开www.baidu.com时,看到的就是摘要的内容。

2) 百度的索引库的索引和互联网的某一个网站对应。

3) 当用户数据要查询的关键字,返回的页面首先是从索引库中得到的。

4) 点击每一个搜索出来的内容进行相关网页查找,这个时候才找的是互联网中的网页。

1.6 lucene的大致结构框图



说明:
写 IndexWriter.add(Document),查IndexSearch("关键字") ;

1) 在数据库中,数据库中的数据文件存储在磁盘上。索引库也是同样,索引库中的索引数据也在磁盘上存在,我们用Directory这个类来描述。

2) 我们可以通过API来实现对索引库的增、删、改、查的操作。

3) 在数据库中,各种数据形式都可以概括为一种:表。在索引库中,各种数据形式也可以抽象出一种数据格式为Document。

4) Document的结构为:Document(List<Field>)

5) Field里存放一个键值对。键值对都为字符串的形式name:属性名,value:属性值 。

6) 对索引库中索引的操作实际上也就是对Document的操作。

一个Document对象相当一个对象(News),一个Field对象相相当于对象(News)里面的一个属性;

全文检索概念,Lucene大致结构的更多相关文章

  1. 全文检索以及Lucene的应用

    全文检索 一.什么是全文检索? 就是在检索数据,数据的分类: 在计算机当中,比如说存在磁盘的文本文档,HTML页面,Word文档等等...... 1.结构化数据 格式固定,长度固定,数据类型固定等等, ...

  2. JAVAEE——Lucene基础:什么是全文检索、Lucene实现全文检索的流程、配置开发环境、索引库创建与管理

    1. 学习计划 第一天:Lucene的基础知识 1.案例分析:什么是全文检索,如何实现全文检索 2.Lucene实现全文检索的流程 a) 创建索引 b) 查询索引 3.配置开发环境 4.创建索引库 5 ...

  3. 全文检索(Lucene&Solr)

    全文检索(Lucene&Solr) 1)什么是全文检索?为什么需要全文检索? 结构化数据(mysql等)方便查询,而非结构化数据(如多篇文章)是难以查询到自己需要的,所以要使用全文检索. 全文 ...

  4. 全文检索框架---Lucene

    一.什么是全文检索 1.数据分类 我们生活中的数据总体分为两种:结构化数据和非结构化数据.   结构化数据:指具有固定格式或有限长度的数据,如数据库,元数据等.   非结构化数据:指不定长或无固定格式 ...

  5. C#中区别多态、重载、重写的概念和语法结构

    C#中区别多态.重载.重写的概念和语法结构 重写是指重写基类的方法,在基类中的方法必须有修饰符virtual,而在子类的方法中必须指明override. 格式: 基类中: public virtual ...

  6. JVM 内部原理(四)— 基本概念之 JVM 结构

    JVM 内部原理(四)- 基本概念之 JVM 结构 介绍 版本:Java SE 7 每位使用 Java 的程序员都知道 Java 字节码在 Java 运行时(JRE - Java Runtime En ...

  7. 全文检索学习历程目录结构(Lucene、ElasticSearch)

    1.目录 (1) Apache Lucene(全文检索引擎)—创建索引:http://www.cnblogs.com/hanyinglong/p/5387816.html (2) Apache Luc ...

  8. 大型运输行业实战_day15_1_全文检索之Lucene

    1.引入 全文检索简介: 非结构化数据又一种叫法叫全文数据.从全文数据(文本)中进行检索就叫全文检索. 2.数据库搜索的弊端 案例 :     select  *  from product  whe ...

  9. 从产品展示页面谈谈Hybris的特有概念和设计结构

    今天这篇文章来自我的同事,SAP成都研究院Hybris开发团队的开发人员Zhang Jonathan(张健).需要特别介绍的是,张健和成都研究院的其他开发同事不同,张健毕业于电子科技大学,读的专业是英 ...

随机推荐

  1. [HNOI 2017]影魔

    Description 题库链接 给你一段长度为 \(n\) 的序列 \(K\) . \(m\) 组询问,每次给定左右端点 \(l,r\) .求出满足区间内下述贡献和. 如果一个区间的两个端点是这一个 ...

  2. P2520 [HAOI2011]向量

    题目描述 给你一对数a,b,你可以任意使用(a,b), (a,-b), (-a,b), (-a,-b), (b,a), (b,-a), (-b,a), (-b,-a)这些向量,问你能不能拼出另一个向量 ...

  3. bzoj 3672: [Noi2014]购票

    Description 今年夏天,NOI在SZ市迎来了她30周岁的生日.来自全国 n 个城市的OIer们都会从各地出发,到SZ市参加这次盛会. 全国的城市构成了一棵以SZ市为根的有根树,每个城市与它的 ...

  4. 【BZOJ3685】【zkw权值线段树】普通van Emde Boas树

    原题传送门 因为马上要开始搞树套树了,所以学了一波权值线段树...毕竟是会点zkw线段树的,所以zkw线段树大法好! 解题思路: 介绍一下权值线段树吧,其实感觉就是线段树的本义,就是你用线段树维护了数 ...

  5. [bzoj4822][Cqoi2017]老C的任务&[bzoj1935][Shoi2007]Tree 园丁的烦恼

    来自FallDream的博客,未经允许,请勿转载,谢谢. 老 C 是个程序员.     最近老 C 从老板那里接到了一个任务——给城市中的手机基站写个管理系统.作为经验丰富的程序员,老 C 轻松地完成 ...

  6. bzoj2811[Apio2012]Guard 贪心

    2811: [Apio2012]Guard Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 905  Solved: 387[Submit][Statu ...

  7. [APIO2016]

    2016的题貌似是韩国棒子出的,好丧啊.... 看了题解还想了好久...... ------------------------------------------------- A.Boat 有n个 ...

  8. Python【第一课】 Python简介和基础

    本节内容 Python安装(windows) 第一个程序(windows中的python) 变量 字符编码 注释 用户输入 模块初步认识 数据类型 数据运算 表达式if...else 表达式for l ...

  9. 在Unix系统中,主存索引节点和辅存索引节点从内容上比较有什么不同,为什么要设置主存索引节点?

    主存索引节点和辅存索引节点的不同主要体现在:主存索引节点状态:设备号.索引节点号:引用计数. 主存索引节点状态——反映主存索引节点的使用情况.它指示出: 1.  索引节点是否被锁上了: 2.  是否有 ...

  10. Linux学习之CentOS(十三)-----磁盘管理之 磁盘与目录的容量(转) df 与du 命令

    磁盘与目录的容量 现在我们知道磁盘的整体数据是在 superblock 区块中,但是每个各别文件的容量则在 inode 当中记载的. 那在文字接口底下该如何叫出这几个数据呢?底下就让我们来谈一谈这两个 ...