资讯专栏INFORMATION COLUMN

mysql全文索引的原理

tulayang / 2265人阅读

摘要:分词的方法基本上是二元分词法最大匹配法和统计方法。索引的数据结构基本上采用倒排索引的结构。全文检索的索引被称为倒排索引,之所以成为倒排索引,是因为将每一个单词作为索引项,根据该索引项查找包含该单词的文本。

全文检索是对大数据文本进行索引,在建立的索引中对要查找的单词进行进行搜索,定位哪些文本数据包括要搜索的单词。因此,全文检索的全部工作就是建立索引和在索引中搜索定位,所有的工作都是围绕这两个来进行的。

建立全文索引中有两项非常重要,一个是如何对文本进行分词,一是建立索引的数据结构。分词的方法基本上是二元分词法、最大匹配法和统计方法。索引的数据结构基本上采用倒排索引的结构。

分词的好坏关系到查询的准确程度和生成的索引的大小。在中文分词发展中,早期经常使用分词方式是二元分词法,该方法的基本原理是将包含中文的句子进行二元分割,不考虑单词含义,只对二元单词进行索引。因此该方法所分出的单词数量较多,从而产生的索引数量巨大,查询中会将无用的数据检索出来,好处是算法简单不会漏掉检索的数据。之后又发展出最大匹配分词方法,该方法又分为正向最大分词和逆向最大分词。其原理和查字典类似,对常用单词生成一个词典,分析句子的过程中最大的匹配字典中的单词,从而将句子拆分为有意义的单词链。最大匹配法中正向分词方法对偏正式词语的分辨容易产生错误,比如“首饰和服装”会将“和服”作为单词分出。达梦数据库采用的是改进的逆向最大分词方法,该分词方法较正向正确率有所提高。最为复杂的是通过统计方式进行分词的方法。该方法采用隐式马尔科夫链,也就是后一个单词出现的概率依靠于前一个单词出现的概率,最后统计所有单词出现的概率的最大为分词的依据。这个方法对新名词和地名的识别要远远高于最大匹配法,准确度随着取样文本的数量的增大而提高。

 二元分词方法和统计方法是不依赖于词典的,而最大匹配法分词方法是依赖于词典的,词典的内容决定分词结构的好坏。

全文检索的索引被称为倒排索引,之所以成为倒排索引,是因为将每一个单词作为索引项,根据该索引项查找包含该单词的文本。因此,索引都是单词和唯一记录文本的标示是一对多的关系。将索引单词排序,根据排序后的单词定位包含该单词的文本。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/30494.html

相关文章

  • mysql全文索引原理

    摘要:分词的方法基本上是二元分词法最大匹配法和统计方法。索引的数据结构基本上采用倒排索引的结构。全文检索的索引被称为倒排索引,之所以成为倒排索引,是因为将每一个单词作为索引项,根据该索引项查找包含该单词的文本。 全文检索是对大数据文本进行索引,在建立的索引中对要查找的单词进行进行搜索,定位哪些文本数据包括要搜索的单词。因此,全文检索的全部工作就是建立索引和在索引中搜索定位,所有的工作都是围绕...

    yangrd 评论0 收藏0
  • MySQL InnoDB索引原理和算法

    摘要:哈希索引学习哈希索引之前,我们先了解一些基础的知识哈希算法。最好能够避免碰撞或者达到最小碰撞。存储引擎中的哈希算法存储引擎使用哈希算法来查找字典,冲突机制采用链表,哈希函数采用除法散列。 也许你经常用MySQL,也会经常用索引,但是对索引的原理和高级功能却并不知道,我们在这里一起学习下。 InnoDB存储索引 在数据库中,如果索引太多,应用程序的性能可能会受到影响;如果索引太少,又会...

    xiaokai 评论0 收藏0
  • 面试官:聊一下你对MySQL索引实现原理

    摘要:一个表中可以有多个辅助索引。哈希算法是一种常用的算法,时间复杂度为。哈希算法存储引擎使用哈希算法来对字典进行查找,哈希碰撞采用转链表解决,哈希函数采用除法散列方式。所以说哈希索引只能用于搜索等值查询,范围查询是不能使用哈希索引。 在数据库中,如果索引太多,应用程序的性能可能会受到影响,如果索引太少,又会对查询性能产生影响。所以,我们要追求两者的一个平衡点,足够多的索引带来查询性能提高,...

    caozhijian 评论0 收藏0
  • MySQL 索引

    摘要:另外,只有字段类型为和的字段才能设置全文索引。在中,主索引和辅助索引在结构上没有任何区别,只是主索引要求是唯一的,而辅助索引的可以重复。这个索引的是数据表的主键,因此表数据文件本身就是主索引。 索引原理 我们知道,MySQL 查询数据是从第一条记录开始依次查找,直到读完整个表或者找到匹配的行。数据库表的数据量越大,MySQL 查询所花费的时间就越多。索引的出现就是为了改善查询性能的。M...

    Salamander 评论0 收藏0
  • 【一文系列】一文掌握mysql索引底层原理

    摘要:在中,既存储主键索引值,又存储行数据,称之为聚簇索引。基于聚簇索引的表在插入新行,或者主键被更新导致需要移动行的时候,可能面临页分裂的问题。所以引擎的索引文件和数据文件是独立分开的,则称之为非聚簇索引。 1、铺垫:几种树的介绍 第一种:二叉查找树 showImg(/img/remote/1460000019975372?w=341&h=253); 不适合用作数据库索引: (1)当数据量...

    Profeel 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<