暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

GBase 8a 分析型数据库全文索引介绍

原创 欧阳无敌 2022-03-10
669

全文索引技术就是将各种信息,文档中所有的文字序列都作为检索对象,找出包含检索词汇的信息或文档。

全文索引在数据库中一般是作为单独模块使用的,如MYSQL全文检索工具——Sphinx,一般全文索引模块需要配合数据库的存储方式进行处理,因为涉及到具体索引文件的存储(全文索引的索引文件较大),全文索引要具体结合存储的索引技术共同作用来提高查询和匹配,这里以gbase全文索引为例来进行描述。

gbase8a存储采用列存,压缩和只能索引,再加上全文索引技术,共同作用来进行检索。默认采用全单字索引方式,支持所有语种,可以保证100%的查询召回率。

基本概念:

分词:将一个值序列切分成一个个单词。自然分词就是单词间以一定标识符作为自然分界符,三元分词的“3”是指当连续的英文或数字超过3个时,按3个一组切分。如果原始数据正常切分就不足3个,那就直接当成一个key存到索引中了。中文一般采用单字切分。英文和数字,全文使用自然分词和三元分词。

单字分词:

数据库知识非常的nice

分词后 数/据/库/知/识/非/常/的/nice

三元分词:

数/据/库/知/识/非/常/的/nic/e

倒排索引:

倒排表以字或词为关键字进行索引,表中关键字所对应的记录表项记录了出现这个字或词的全部文档,一个表项就是一个字表段,它记录该文档的ID和字符在该文档中出现的位置状况,

因为每一个字或词对应的文档数量在动态变化,因此倒排表的创建和维护都较为复杂,可是在查询的时候因为能够一次获得查询关键字所对应的全部文档,因此效率高于正排表。在全文检索中,检索的快速响应是一个最为关键的性能,而索引创建因为在后台进行,尽管效率相对低一些,但不会影响整个搜索引擎的效率

具体可以参考什么是正向索引、反向索引(倒排索引)? - JavaShuo 进行了解

举个例子:

文档集合

文档编号 文档内容
1 数据库知识非常Nice
2 数据库知识特别Nice
3 关系数据库和非关系数据库都非常Nice


分词后

文档编号 文档内容
1 数据库/知识/非常/Nice
2 数据库/知识/特别/Nice
3 关系/数据库/和/非/关系/数据库/都/非常/Nice

生成倒排表

单词ID 单词 倒排列表(docid,HIT)
1 数据库 (1,1)(2,1)(3,2),(3,6)
2 知识 (1,2),(1,2)
3 非常 (1,3)
4 Nice (1,4)(2,4)(3,9)
5 特别 (2,4)
6 关系 (3,1)(3,5)
7 (3,3)
8 (3,4)
9 (3,7)


这样就形成倒排文件doclist 和hitlist


最后修改时间:2022-03-10 21:25:15
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论