全文检索是对大数据文本进行索引,在创建的索引中对要查找的单词进行进行搜索,定位哪些文本数据包括要搜索的单词。所以,全文检索的所有工做就是创建索引和在索引中搜索定位,全部的工做都是围绕这两个来进行的。算法
创建全文索引中有两项很是重要,一个是如何对文本进行分词,一是创建索引的数据结构。分词的方法基本上是二元分词法、最大匹配法和统计方法。索引的数据结构基本上采用倒排索引的结构。数据库
分词的好坏关系到查询的准确程度和生成的索引的大小。在中文分词发展中,早期常常使用分词方式是二元分词法,该方法的基本原理是将包含中文的句子进行二元分割,不考虑单词含义,只对二元单词进行索引。所以该方法所分出的单词数量较多,从而产生的索引数量巨大,查询中会将无用的数据检索出来,好处是算法简单不会漏掉检索的数据。以后又发展出最大匹配分词方法,该方法又分为正向最大分词和逆向最大分词。其原理和查字典相似,对经常使用单词生成一个词典,分析句子的过程当中最大的匹配字典中的单词,从而将句子拆分为有意义的单词链。最大匹配法中正向分词方法对偏正式词语的分辨容易产生错误,好比“首饰和服装”会将“和服”做为单词分出。达梦数据库采用的是改进的逆向最大分词方法,该分词方法较正向正确率有所提升。最为复杂的是经过统计方式进行分词的方法。该方法采用隐式马尔科夫链,也就是后一个单词出现的几率依靠于前一个单词出现的几率,最后统计全部单词出现的几率的最大为分词的依据。这个方法对新名词和地名的识别要远远高于最大匹配法,准确度随着取样文本的数量的增大而提升。数据结构
二元分词方法和统计方法是不依赖于词典的,而最大匹配法分词方法是依赖于词典的,词典的内容决定分词结构的好坏。大数据
全文检索的索引被称为倒排索引,之因此成为倒排索引,是由于将每个单词做为索引项,根据该索引项查找包含该单词的文本。所以,索引都是单词和惟一记录文本的标示是一对多的关系。将索引单词排序,根据排序后的单词定位包含该单词的文本。排序