Lucene系列

来源:互联网 发布:淘宝法恩莎智能马桶盖 编辑:程序博客网 时间:2024/04/20 00:54

5.1 文档索引原理:
5.1.1 索引概述:
5.1.2 索引基本结构
5.1.3 倒排索引原理
5.1.4 索引分类
5.1.5 高性能索引

5.1.1 索引概述:
索引是一种数组存储和组织结构。主要用于从大量文件中快速的查找到某个指定的信息。
完成信息检索的建立、维护和管理功能软件叫做索引器(文本信息处理系统),通常采用倒排文件索引构造索引系统。
文本索引的实现方法(索引技术):
1、倒排索引。 高性能索引,采用字或词作为索引项,适合关键字搜索;
2、后缀数组。 适合用于短语查询;
3、签名文件。不常用

5.1.2 索引基本结构:
索引器:搜索引擎中用来建立索引的软件系统称为索引器,用来处理和分析给结构化文档。
索引器从原始文档中抽取索引项,用于表示文档,并生成文档集合的索引表。
搜索引擎索引的文档内容通常包括:文档的附属信息、文档的内容信息。
文档在索引之前通常会利用预处理程序和分词程序转化为中间文档格式,多以纯文本形式存储,采用空格或者其他方式标识不同的词汇。

搜索引擎的索引器处理文本解析器生成的纯文本或统一格式信息,生成索引字典和文件索引库。
索引器工作 流程图:
原始文本 –> 文本解析器 –> 文本中间格式库 –> 索引器 –> a. 文本索引库 b. 索引字典

索引器运行环境主要涉及的内容主要是文本预处理和检索数据库。
1. 原始文本库:
网络蜘蛛获取的网络数据或本地存储的各种格式的数据;
2. 文本解析器:
分析网页或文档的内容,统一为无格式文档或中间格式文档。通常还包括:中文分词、垃圾信息过滤、为索引器提供统一的可分析数据;
3. 文本中间格式库:
是经过文本解析器处理后得到的纯文本或统一中间格式的数据库。已经去除了噪音和其他垃圾信息,并且根据需要完成了分词等处理过程,可以为索引器提供输入数据;
4. 索引器:
对分析器处理的结果进行处理。依次读取分析索引项,利用预设的索引项字典建立按索引项排列的链表,并动态更改索引字典。
最终完成按照索引项组织的索引列表、索引字典和文档索引,用于表示文档以及生成文档库的索引表;
5. 文本索引库:
是以索引形式组织存放的数据文件,多采用倒排索引形式。
6. 索引字典:
是词与编码的二元组结构数据库。对于每一个词汇都有一个唯一的编码与它对应。
在建立索引的过程中,完成索引项的转换,以减少磁盘和内存的使用量;

文档解析器和索引器协同工作,统一完成了索引的建立和维护管理工作。文本索引库统一保存对应的文档索引。

5.1.3 倒排索引原理:
索引技术的核心机制就是:倒排索引。
倒排索引(inverter index):利用索引关键字直接确定文档列表,最后确定希望找到的文档列表。如:新华字典查单词的步骤

5.1.4 索引分类
1、索引项的类型分类:
a. 字索引 :
把文档中每一个独立的英文单词或单个汉字作为一个索引项,建立编码索引。
好处是能够保证后续检索的查全率,但索引的膨胀比较大,占用资源严重;
b. 词索引 :
是对文档进行分词,把每个具有实际含义的词汇作为一个索引单位。
中文部分切分出的汉语词汇作为索引单位,英文部分直接采用单词作为索引单位。
好处是处理方便,膨胀率相对比较低,但会出现由于分词问题造成的漏查现象;
c. 短语索引 :
索引单位是一个具有实际意义的词汇组合,比如英语词组或者中文短语、固定名称等;
d. 混合索引 :
是把单字索引、词索引、短语索引搭配。
保证查全率和快速检索的特性,但是实现是使用比较复杂;

2、索引管理方式分类:
a. 静态索引 :如果索引的数据比较稳定、很少更改,可以采用;
b. 动态索引 :主要应用在对数据实时性要求比较高的场景;
动态和静态不是绝对的,静态索引也会在适当的时机重新加载更新数据。动态索引也会有一定的更新时机延迟。
总体来看实现增量更新的动态索引是高质量搜索引擎的基本要求。

5.1.5 高性能索引
1、如何提高索引建立的速度:
2、如何减少索引的资源占用:
3、索引的使用当中如何合理地分配有限的内存资源:
4、如何提高资源的访问速度:

0 0
原创粉丝点击