索引的原理

搜索引擎的工作原理可分为三个过程:首先在互联网中发现、搜集网页信息,其次对信息进行提取和组建索引库,最后再由检索器根据用户输入的关键词,在索引库中快速找到文档,进行文档与查询的相关度评价,对输出的结果进行排序,并将查询结果呈现给用户 。
搜索引擎不能真正理解网页上的内容,他只是机械地匹配网页上的文字,而真正意义上的搜索引擎通常指是收集了互联网上几千万到几十亿个网页并对网页中的每一个字进行索引,从而建立索引数据库的全文搜索引擎 。
典型的搜索引擎由三个模块组成:
1、信息采集模块:信息采集器是一个可以浏览网页的程序,它在进入到一个网页后会把该网页的链接作为浏览的起始地址,把被链接的网页获取过来,抽取网页中出现的链接,并通过一定的算法决定下一步要访问哪些链接 。
2、查询表模块:查询表模块就是一个全文索引数据库 。
3、检索模块:检索模块是实现检索功能的程序,其作用是将用户输入的检索表达式拆分为具有表达意义的字或者词,通过一定的算法获得相应的检索结果 。
数据库索引的原理是什么索引是为检索而存在的 。如一些书籍的末尾就专门附有索引,指明了某个关键字在正文中的出现的页码位置,方便我们查找,但大多数的书籍只有目录,目录不是索引,只是书中内容的排序,并不提供真正的检索功能 。可见建立索引要单独占用空间;索引也并不是必须要建立的,它们只是为更好、更快的检索和定位关键字而存在 。
全文索引的原理原理是先定义一个词库,然后在文章中查找每个词条(term)出现的频率和位置,把这样的频率和位置信息按照词库的顺序归纳,这样就相当于对文件建立了一个以词库为目录的索引,这样查找某个词的时候就能很快的定位到该词出现的位置 。
问题在处理英文文档的时候显然这样的方式是非常好的,因为英文自然的被空格分成若干词,只要我们有足够大的词汇库就能很好的处理 。但是亚洲文字因为没有空格作为断词标志,所以就很难判断一个词,而且人们使用的词汇在不断的变化,而维护一个可扩展的词汇库的成本是很高的,所以问题出现了 。
解决出现这样的问题使“分词”成为全文索引的关键技术 。目前有两种基本的方法:
二元法 它把所有有可能的每两两汉字的组合看为一个词组,这样就没有维护词库的开销 。
词库法 它使使用词库中的词作为切分的标准,这样也出现了词库跟不上词汇发展的问题,除非你维护词库 。
【索引的原理】实际上现在很多著名的搜索引擎都使用了多种分词的办法,比如“正向最大匹配”+“逆向最大匹配”,基于统计学的新词识别,自动维护词库等技术,但是显然这样的技术还没有做到完美 。