当前位置:   article > 正文

Mysql的全文索引原理的简单理解_mysql全文索引原理

mysql全文索引原理

Mysql的全文索引实际是通过 倒排索引 来实现的。

倒排索引实际就是将要插入的文本按照相应的词进行拆分,然后额外建立一张表,存储这些出现的单词,并做出相应的统计。

创建一张表:

CREATE TABLE `article` (

  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,

  `content` text,

  PRIMARY KEY (`id`),

  FULLTEXT KEY `ftk_content` (`content`)

) ENGINE=Innodb DEFAULT CHARSET=utf8;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

插入数据:

INSERT INTO article(id,content) values(1,'我们都是中国人,我们都爱中国!');
INSERT INTO article(id,content) values(2,'我们都是中国人,我们很骄傲!');
  • 1
  • 2

那么可能对全文索引字段创建如下的表格:

Idwordcountdocument_id
1我们41,2
2中国31,2
3中国人21,2
4都是21,2
5骄傲12

如果我们查询content中包含有“中国” 的数据,可以查询到上表中id=2的数据,数据中document_id中表示在article表中,主键id为1,2的行数据出现过“中国”这个词,那么数据库就可以直接使用主键id去获取实际数据了,这大大提高了查询效率。

如果查询content中包含“骄傲”的数据,则依上规则,将会获取到article表中id=2的数据中包含了这个词,那么就会使用这个id去article表中获取详细数据了。

根据上面分词表格的统计信息,我们可以在查询时设置一些规则,比如某个词在最多的文档中出现过,某个词出现的频率最高等,这就是一些全文索引查询时,所谓的“相关性”查询的基本思路。

个人对全文索引的简单理解,比较粗糙。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/168428?site
推荐阅读
相关标签
  

闽ICP备14008679号