C++高级数据结构算法 | 倒排索引(inverted index)_c++ 倒排索引 交集_ZY-JIMMY的博客-程序员宅基地

技术标签: 算法与数据结构精析  倒排索引的实现  从搜索引擎谈起  倒排索引举例  浅谈正排索引  倒排索引的基本概念  


从搜索引擎谈起

在关系数据库系统里,索引是检索数据最有效率的方式,。但对于搜索引擎,它并不能满足其特殊要求:

  • 海量数据:搜索引擎面对的是海量数据,像Google,百度这样大型的商业搜索引擎索引都是亿级甚至百亿级的网页数量 ,面对如此海量数据 ,使得数据库系统很难有效的管理。
  • 数据操作简单:搜索引擎使用的数据操作简单 ,一般而言 ,只需要增、 删、 改、 查几个功能 ,而且数据都有特定的格式 ,可以针对这些应用设计出简单高效的应用程序。而一般的数据库系统则支持大而全的功能 ,同时损失了速度和空间。最后 ,搜索引擎面临大量的用户检索需求 ,这要求搜索引擎在检索程序的设计上要分秒必争 ,尽可能的将大运算量的工作在索引建立时完成 ,使检索运算尽量的少。一般的数据库系统很难承受如此大量的用户请求 ,而且在检索响应时间和检索并发度上都不及我们专门设计的索引系统。

搜索引擎通常检索的场景是:给定几个关键词,找出包含关键词的文档

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ZYZMZM_/article/details/92604963

智能推荐

SPSS(基础篇02)--已有变量值的重编码_spss重新编码旧值和新值-程序员宅基地

已有变量值的重编码***注意***:在变量赋值时,用上一节的方法,会将缺失值命为1。提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录已有变量值的重编码前言一、重编码(Recode)二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、重编码(Recode)可直_spss重新编码旧值和新值

navicat将多个表导出为一个sql文件-程序员宅基地

1.shift选中多个表2右键选择--转储sql文件---结构和数据

meteor自带user数据集合-程序员宅基地

meteor项目创建时,会自己创建并连接到一个名为user的数据集合,故此,在项目中调用此集合时,不需要连接集合,只需要以以下方式直接调用即可Meteor.users.find({}).fetch()...

IP地址划分子网中 【计算子网掩码、可用地址数、每个划分的子网ip】的方法_子网的地址块怎么求-程序员宅基地

例题:某单位分匹配到一个地址块136.23.12.64/26。需要进一步划分为4个一样大的子网。求1.每个子网的子网掩码。2.每个子网中有多少个可用地址。3.每个子网的地址块是什么?解:原IP地址:136.23.12.64/26 【/26代表的是ip的掩码】则原ip化成二进制为:10001000.00010111.00001100.01|000000 【..._子网的地址块怎么求

flutter upload dio elfinder_elfinder upload-程序员宅基地

IconButton( onPressed: loadAssets, icon: Icon(Icons.photo),),Future<void> loadAssets() async { List<Asset> resultList = List<Asset>(); String error = 'No Error Dectected'; try { resultList = await MultiImageP..._elfinder upload

随便推点

自定义toast-程序员宅基地

Toast的自定义,并能随时关闭与开启

antd vue 表格纵向合并_antd-design-vue 表格纵向-程序员宅基地

1、method里面combineRow(key) { // debugger const dataSource = this.dataSource for (var i = 0; i < dataSource.length; i++) { const item = dataSource[i] let count = 1 for (let j = i + 1; j < dataSo._antd-design-vue 表格纵向

记录某捷的代码审计(附5个rce0day)_goddemon的博客-程序员宅基地

前言:漏洞均已提交且均已修复这里文章只做技术交流关于这个系统 算是自己入门审代码审计审的第一个系统 反反复复审系统 审了大概 7-8个rce吧 还有一些其他的洞审计过程:

机器学习—KNN算法-程序员宅基地

工作原理:给定测试样本,基于某种距离度量找出训练集中于其最靠近的K个训练样本,然后基于这K个训练样本的信息进行预测。在分类任务中可以使用"投票法"在回归任务中可以使用"平均法"还可以根据距离远近进行加权平均或加权投票,距离越近样本的权重越大没有显式的训练过程例子一我的朋友海伦一直使用在线约会网站寻找适合自己的约会对象。尽管约会网站会推荐不同的 人选,但她并不是喜欢每一个人。经过一番总结...

浅谈Element.insertAdjacentHTML()_insertadjacenthtml监听-程序员宅基地

接口的insertAdjacentHTML()方法Element将指定的文本解析为HTML或XML,并将结果节点插入DOM树中的指定位置。它不会重新解析正在使用该元素的元素,因此不会破坏该元素内部的现有元素。这避免了额外的序列化步骤,使其比直接innerHTML操作要快得多语法:element.insertAdjacentHTML(position, text);position‘beforebegin’:element本身之前。‘afterbegin’:就在element第一个孩子之前。‘bef_insertadjacenthtml监听

监听套接字与已连接套接字_监听套接字和接受套接字联系-程序员宅基地

监听套接字(listening socket)和已连接套接字(connected socket)之间的区别常会使很多人感到迷惑。本文简要描述一下这两者的区别。为了说明监听套接字与已连接套接字的区别,我们先来看一下套接字在连接中的含义。 从内核的角度来看,一个套接字就是通信的一个端点。一个连接由它两端的套接了地址唯一确定,这对套接字地址叫做套接字对(socket pair),由下列4元组来表示:_监听套接字和接受套接字联系