数据库对于文本加索引底层原理是什么?

发布于 2022-09-13 01:13:15 字数 249 浏览 26 评论 0

对于数字字段这些,通过结构加了索引,能够直接比较大小。但是对于文本加了索引,底层是怎么处理的?因为文本一是不是很好直接比较大小,二是还会涉及到模糊匹配(%这种,或者正则),模糊匹配的执行过程是怎样的,怎么使用索引,或者那些情况能够使用索引?
有一些数据库支持全文扫描,底层实际上就是接入了分词,但是这个一般都是独立处理,并不是简单的加一个索引(比如对用户昵称加一个索引)。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

野却迷人 2022-09-20 01:13:15

文本索引一般有2种情况
1种和数字没什么区别也是比大小,就是做字典序比较。

第2种就是你说的全文索引,本质和搜索引擎的原理一样,分词以后做倒排索引。
例如有3条记录,分别是
1:中国人民大学
2:中国科技大学
3:南方科技大学
分词假设只能分出“中国”,“人民”,“科技”,“大学”,“南方”五个词。
那么生成倒排索引如下:
中国:1,2
人民:1
科技:2,3
大学:1,2,3
南方:3
用这个索引就可以根据你输入的“科技”找到第2,3条记录包含这个词

对于like %的模糊查询,如果是给定前缀,如中国%,那么可以利用上第一种索引,通过前缀可以缩小查询范围。如果前缀是未知的,如%大学,那么就只能全表扫描逐个做字符串匹配了。
正则查询同理,如果正则中有常量前缀,那么可以利用上字符串的索引,否则不能。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文