首页 > 其他分享 >倒排索引的理解

倒排索引的理解

时间:2022-09-18 13:44:44浏览次数:94  
标签:维亚 倒排 苏州街 桔子 索引 理解 文档

https://blog.csdn.net/qq_39144436/article/details/124509108

image

搜索的核心目标实际上是保证搜索的效果和性能,为了高效的实现全文检索,我们可以通过倒排索引来解决。

倒排索引是区别于正排索引的概念:

  • 正排索引:是以文档对象的唯一 ID 作为索引,以文档内容作为记录。
  • 倒排索引:Inverted index,指的是将文档内容中的单词作为索引,将包含该词的文档 ID 作为记录。

倒排索引的生成过程
下面通过一个例子来说明下倒排索引的生成过程。

假设目前有以下两个文档内容:

苏州街维亚大厦
桔子酒店苏州街店

其处理步骤如下:

1、正排索引给每个文档进行编号,作为其唯一的标识。

文档 id content
1 苏州街维亚大厦
2 桔子酒店苏州街店
2、生成倒排索引:

首先要对字段的内容进行分词,分词就是将一段连续的文本按照语义拆分为多个单词,这里两个文档包含的关键词有:苏州街、维亚大厦…
然后按照单词来作为索引,对应的文档 id 建立一个链表,就能构成上述的倒排索引结构。
Word 文档 id
苏州街 1,2
维亚大厦 1
维亚 1
桔子 2
酒店 2
大赛 1
有了倒排索引,能快速、灵活地实现各类搜索需求。整个搜索过程中我们不需要做任何文本的模糊匹配。

例如,如果需要在上述两个文档中查询 苏州街桔子 ,可以通过分词后 苏州街 查到 1、2,通过 桔子 查到 2,然后再进行取交取并等操作得到最终结果。

image

标签:维亚,倒排,苏州街,桔子,索引,理解,文档
From: https://www.cnblogs.com/fengfengyang/p/16704685.html

相关文章

  • Kakfa系列丛书推荐之《深入理解Kafka:核心设计与实践原理》
    编者推荐本书从Kafka的基本概念入手,主要从生产端、消费端、服务端等3个方面进行全面的陈述,主要内容包括Kafka的基本使用方式、生产者客户端的使用、消费者客户端的使用......
  • 理解Jwt代码
    1.昨天主要是对Jwt的代码里面不熟悉的代码进行了简要的理解,发现其实有些流程并不是普通程序员自己写的,而是自己进行拓展,这些流程是开源程序员写的开发流程;我发现这些代码一......
  • 分布式搜索引擎02
    分布式搜索引擎02 在昨天的学习中,我们已经导入了大量数据到elasticsearch中,实现了elasticsearch的数据存储功能。但elasticsearch最擅长的还是搜索和数据分析。所以今......
  • 好书推荐之《深入理解JAVA虚拟机》
    大佬推进这本书作为JVM的入门书籍,是每一个JVAV工程师必备的。 简介这是一部从工作原理和工程实践两个维度深入剖析JVM的著作,是计算机领域公认的经典,繁体版在台湾也......
  • 好书推荐之《深入理解计算机系统》
    大佬推荐首先推荐的是翻译版图书《深入理解计算机系统》,原书名为《ComputerSystemsAProgrammer’sPerspective》。不过,这本书叫做《程序员所需要了解的计算机知识》......
  • 一文理解golang中的链表
    每节运煤车就是单链表里的元素,每节车厢里的煤炭就是元素中保存的数据。前后车通过锁链相连,作为单链表运煤车,从1号车厢开始,每节车厢都知道后面拉着哪一节车厢,却不知道前面是......
  • 简单理解数据代理Object.defineProperty(obj,变量,{})
    简单理解Object.defineProperty()数据代理:通过一个对象代理对另一个对象中属性的操作(读写)eg:letobj1={x:1}letobj2={y:2}Object.defineProper......
  • 数据库三大范式通俗理解
    第一范式(1NF):字段不可分;第二范式(2NF):有主键,非主键字段依赖主键;第三范式(3NF):非主键字段不能相互依赖 https://baijiahao.baidu.com/s?id=1703973144064369296 ......
  • 理解 Spring IoC 容器
    控制反转与大家熟知的依赖注入同理,这是通过依赖注入对象的过程.创建Bean后,依赖的对象由控制反转容器通过构造参数工厂方法参数或者属性注入.创建过程相对于普通......
  • 导致索引失效的几种情况
    1.用!=或者<>导致索引失效select*fromtable1wherename!='zhangsan'select*fromtable1wherename<>'zhangsan'2.函数导致的索引失效  如果使用......