全文索引结构研究

  • 格式:doc
  • 大小:23.50 KB
  • 文档页数:4

全文索引结构的研究
摘要:随着internet技术的普遍应用,网络信息量不断的增大,如何在浩瀚的网络数据中搜索到相关的数据信息,是目前网络索引技术研究的主要问题,本文主要介绍了全文索引结构对网络数据搜素的应用和过程。

关键词:全文索引;索引过程;搜索过程
中图分类号:tp391 文献标识码:a 文章编号:1007-9599 (2012)24-0086-02
全文索引结构的研究主要是为了降低全文索引的空间占用、提高索引的速度,提高用户的浏览检索速率,设计空间复杂度和时间复杂度都较小的全文索引结构是重要研究的课题。

1 全文索引结构简介
一般我们生活中的数据分为两类:结构化数据和非结构化数据。

结构化数据是指具有固定长度和格式的数据;而非结构化数据是没有固定长度和格式的数据。

我们所指的全文数据就是一种非结构化的数据,搜索的过程中可以使用对结构化数据的搜索(如数据库数据的搜索)和对非结构化数据的搜索(如使用搜索引擎对网络数据的搜索)。

在对全文数据进行搜索是我们主要使用两种方法:一种是顺序扫描法,就是在一个文件中从头到尾的查看,直到找出要寻找的字符串,这种方法比较的原始,适合文件量比较小的对象,比较的直接和快捷,但是如果文档量大则使用起来会相当的繁琐。

另一种方法是全文索引,所谓全文索引就是将全文非结构化的数据提
取出一部分,按照某种结构重新进行排列,这个过程叫做索引,然后再对索引进行搜索,从而快速找到要寻找的字符串。

全文检索是指计算机索引程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置,当用户查询时,检索程序就根据事先建立的索引进行查找,并将查找的结果反馈给用户的检索方式。

这个过程类似于通过字典中的检索字表查字的过程。

全文检索的过程包括索引创建和搜索索引两个过程,索引创建就是将网络中所有信息(包括结构化信息和非结构化信息)提取,创建索引的过程;搜索索引就是根据用户的搜索要求,从已经创建的索引中,查询到相关结构的过程。

下图描述了全文索引的过程。

2 索引过程
对于非结构数据在已有文档中找到符合的字符串比较容易,这是文档到字符串的映射,而索引过程中需要将符合条件的字符串归结到相应文档中,就相当于上述过程的逆过程,即字符串到文档的映射,我们称作反向索引。

有两种不同的反向索引形式:一条记录的水平反向索引(或者反向档案索引)包含每个引用单词的文档的列表。

一个单词的水平反向索引(或者完全反向索引)又包含每个单词在一个文档中的位置。

后者的形式提供了更多的兼容性(比如短语搜索),但是需要更多的时间和空间来创建。

反向索引的过程如下图所示:
我们指定文档库中有1到100篇文档,找到相关的字符串保存在
词典中,并且保存词典到文档的链接,我们也把此表称作倒排表。

由此可见,顺序查找每一次都需要扫描,浪费大量的时间,而全文索引只需要建立一次索引,就可以一劳永逸,在已有的索引结构中进行查找了。

索引的具体过程如下:
有一系列被索引文件
被索引文件经过语法分析和语言处理形成一系列词。

经过索引创建形成词典和反向索引表。

通过索引存储将索引写入硬盘。

3 搜索过程
搜索就是在已经建立索引的文档库中找到相关文档,但是当相关文档数目过大时也要经过如下步骤:
3.1 用户输入查询语句。

查询语句也有一定的语法,语法规则和我们普通语言类似。

3.2 对查询语句经过语法分析和语言分析得到一系列词。

(1)词法分析主要用来识别单词和关键字。

(2)语法分析主要根据查询语句的语法规则来形成一颗语法树。

(3)语言处理和索引过程中的语言处理几乎相同。

3.3 通过语法分析得到一个查询树。

(1)在反向索引表中找到相关字符串的链表
(2)对相关字符串的链表进行合并
(3)通过相关运算排除,找到链表为相关字符串链表
3.4 利用查询树搜索索引,从而得到每一个词的文档链表,对文
档链表精心交、差、并得到结构文档。

3.5 将索引得到的结果文档对查询的相关性进行排序。

判断词之间的关系从而得到文档相关性的过程应用一种叫做向量空间模型的算法,包括以下两个过程:计算权重的过程和判断词之间的关系从而得到文档相关性的过程。

3.6 返回查询结果给用户。

下图总结了全文索引结构的全过程(红色箭头代表了索引的过程,蓝色箭头代表了搜索的过程)。

结束语:总之,全文索引结构是一种有效的网络数据检索方式,通过索引的建立和搜索两个过程可以方便有效的实现对网络数据的查找。

它具有查询速度快,准确,响应时间短的优点,然而如何发挥它的强大功能,并逐步完善它的功能,是需要我们进一步深入探讨的问题。

参考文献:
[1]刘晓珠,彭志勇.全文索引技术时空效率分析[j].软件学报,2009,7.
[2]曹元大,贺海军,涂哲明,等.全文检索字索引技术的研究与实现[j].计算机工程,2002,6.
[3]徐小刚,王俊杰,于玉.全文索引的研究[j].计算机工程,2002,2.。