当前位置:   article > 正文

全文索引简介_什么是全文索引

什么是全文索引

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

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

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

闽ICP备14008679号