当前位置:网站首页>搜索 正排索引 和 倒排索引 区别
搜索 正排索引 和 倒排索引 区别
2022-07-05 15:48:00 【软件工程小施同学】
一、什么是正排索引(forward index)?
简言之,由key查询实体的过程,使用正排索引。
例如,用户表:
t_user(uid, name, passwd, age, sex)
由uid查询整行的过程,就是正排索引查询。
画外音:时间复杂度可以认为是O(1)。
二、什么是倒排索引(inverted index)?
与正排索引相反,由item查询key的过程,使用倒排索引。
对于网页搜索,倒排索引可以理解为:
Map<item, list<url>>
能够由查询词快速找到包含这个查询词的网页的数据结构。
画外音:时间复杂度也是O(1)。
举个例子,假设有3个网页:
url1 -> “我爱北京”
url2 -> “我爱到家”
url3 -> “到家美好”
这是一个正排索引:
Map<url, page_content>。
分词之后:
url1 -> {我,爱,北京}
url2 -> {我,爱,到家}
url3 -> {到家,美好}
这是一个分词后的正排索引:
Map<url, list<item>>。
分词后倒排索引:
我 -> {url1, url2}
爱 -> {url1, url2}
北京 -> {url1}
到家 -> {url2, url3}
美好 -> {url3}
由检索词item快速找到包含这个查询词的网页Map<item, list<url>>就是倒排索引。
画外音:明白了吧,词到url的过程,是倒排索引。
正排索引和倒排索引是spider和build_index系统提前建立好的数据结构,为什么要使用这两种数据结构,是因为它能够快速的实现“用户网页检索”需求。
画外音,业务需求决定架构实现,查询起来都很快。
边栏推荐
- 一些認知的思考
- Mongodb getting started Tutorial Part 04 mongodb client
- Cartoon: what is blue-green deployment?
- PSPNet | 语义分割及场景分析
- 漫画:什么是服务熔断?
- Replknet: it's not that large convolution is bad, but that convolution is not large enough. 31x31 convolution. Let's have a look at | CVPR 2022
- DataArts Studio数据架构——数据标准介绍
- 单商户 V4.4,初心未变,实力依旧!
- Flet教程之 09 NavigationRail 基础入门(教程含源码)
- Enterprise backup software Veritas NetBackup (NBU) 8.1.1 installation and deployment of server
猜你喜欢
Codasip adds verify safe startup function to risc-v processor series
The difference between abstract classes and interfaces
18.[stm32] read the ROM of DS18B20 temperature sensor and realize multi-point temperature measurement
Seaborn draws 11 histograms
Coding devsecops helps financial enterprises run out of digital acceleration
Convert obj set to entity set
数据湖(十四):Spark与Iceberg整合查询操作
Quick completion guide for manipulator (IX): forward kinematics analysis
后台系统发送验证码功能
RLock锁的使用
随机推荐
Pits encountered in the use of boolean type in development
ES6深入—ES6 Generator 函数
18.[stm32] read the ROM of DS18B20 temperature sensor and realize multi-point temperature measurement
Is it safe for Guotai Junan to open an account online
Solve the Hanoi Tower problem [modified version]
21. [STM32] I don't understand the I2C protocol. Dig deep into the sequence diagram to help you write the underlying driver
Cs231n notes (medium) -- applicable to 0 Foundation
Use of set tag in SQL
我们为什么要学习数学建模?
Convert obj set to entity set
scratch五彩糖葫芦 电子学会图形化编程scratch等级考试三级真题和答案解析2022年6月
You should have your own persistence
One click installation script enables rapid deployment of graylog server 4.2.10 stand-alone version
写单元测试的时候犯的错
Some cognitive thinking
视觉体验全面升级,豪威集团与英特尔Evo 3.0共同加速PC产业变革
超分辨率技术在实时音视频领域的研究与实践
抽象类和接口的区别
Intel 13th generation Raptor Lake processor information exposure: more cores, larger cache
StarkWare:欲构建ZK“宇宙”