全文索引简介

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

全文索引在数据库中一般是作为单独模块使用的,如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)
4Nice(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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值