侧边栏壁纸
  • 累计撰写 247 篇文章
  • 累计创建 16 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

倒排索引(搜索引擎技术基础)

kaixindeken
2021-04-20 / 0 评论 / 0 点赞 / 110 阅读 / 586 字

百度、Google 等搜索引擎为我们日常查找信息带来了巨大的方便,你是否思考过搜索引擎是如何从海量 HTML 文档中通过关键词查找资源的?今天给大家介绍最简单,也是最基础的搜索引擎技术 —— 倒排索引。

有倒排索引,就有正向索引,正向索引指的是通过文档 ID 找到对应的文档,如果通过文档ID查找对应文档,再在文档中匹配关键词,意味着要扫描所有文档,最后还要排序,对于互联网上的海量资源来说,显然是不可取的。

所以搜索引擎反其道行之,通过分析每个文档,提取其中的关键字,并建立关键词与文档 ID 的映射关系,每个关键词都对应着多个文档 ID。由于不是通过文档来确定属性(这里的属性是关键词),而是通过属性来确定文档,故而将其称作倒排索引。

我们以两个句子为例(把句子看作文章):

  1. 提供优质学习资源。
  2. 优质资源平台。

对应的倒排索引结构如下:
|关键词|编号|
|-------|-------|
|提供|1|
|优质|1,2|
|学习|1|
|资源|1,2|
|平台|2|

显然,在涉及中文的文章中,还要进行中文分词。

倒排索引在很多开源搜索工具中,也有应用,比如 Elasticsearch、Lucene 等。

当然,我们这里只是一个简化的例子,实际使用要复杂的多。感兴趣的同学可以去研究下诸如 Elasticsearch 倒排索引的实现。

0

评论区