首页 > 其他分享 >倒排索引

倒排索引

时间:2023-02-16 10:55:20浏览次数:33  
标签:倒排 海量 问题 索引 文档 词项

倒排索引的哈希表.png 如上图,这个倒排索引使用哈希表来实现也是可以的,其有着 O(1) 查询复杂度,能完美地满足我们的需求。但是呢,现实中数据往往是海量的,如果简单地使用哈希表来实现倒排索引是不可行的,因为存储海量的数据时,系统将会面临下面几个问题:

  • 分词形成的词项(term)可能是海量的,需要可以在内存和磁盘上高效存储;
  • 既然词项是海量的,那么如何快速找到对应的词项也是个问题;
  • 每个词项对应的文档数可能非常多,也就是上图中文档列表的链表很长;
  • 在词项对应的文档多的情况下,多个文档列表间做交集的效率将是个挑战。

其实这四个问题可以分为两个方面:词项方面的问题和文档列表方面的问题。在 Lucene 的倒排索引的实现中,其使用词项索引(Term Index)来解决上述 1 和 2 的问题,而对于 3 和 4,Lucene 对数据进行了压缩处理,使用 Roaring Bitmaps、跳表等技术来进行快速求交集。在面对海量的数据时,系统的设计往往都是非常复杂的,我将在下篇来介绍倒排索引的实现,并且看看这些问题是如何解决的。

标签:倒排,海量,问题,索引,文档,词项
From: https://www.cnblogs.com/fxh0707/p/17125938.html

相关文章

  • 1.mysql创建索引
    --创建一个普通索引(方式①)createindex索引名ON表名(列名(索引键长度)[ASC|DESC]);--创建一个普通索引(方式②)altertable表名addindex索引名(列名(索引键长度)......
  • 无法加载源 https://api.nuget.org/v3/index.json 的服务索引
    .net6之后,不会随项目生成packages文件夹,将项目拷贝到无联网的电脑上用VS打开时,会出现nuget还原失败的情况,只需要把原电脑中的用户文件夹下的.nuget文件夹拷贝过去,放到对应......
  • ignite系列之8-Ignite索引使用说明
    Ignite索引使用说明1概述官方资料地址:https://www.ignite-service.cn/详见:文档-》SQL处理-》3.定义索引章节本文章重点说明通过注解方式如何定义和使用索引,并给出配置......
  • ignite系列之6-- 使用注解配置索引
    官方连接:见处理SQL-3.2.使用注解配置索引https://www.ignite-service.cn/doc/java/WorkingwithSQL.html#_3-2-%E4%BD%BF%E7%94%A8%E6%B3%A8%E8%A7%A3%E9%85%8D%E7%BD%AE%E......
  • 如何在 Pascal Voc 语义分割任务中为标签图建立灰度图索引
    上图是voc语义分割的图片,下图是来自陈洪翰大佬文章中的索引表。直接放代码:importosimportcv2importnumpyasnpfrommatplotlibimportpyplotaspltfromPIL......
  • 数据库基础操作 - 5(索引及数据库设计规范)
    7、索引MySQL管饭对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。提取句子主干,就可以得到索引的本质:索引是数据结构。7.1、索引的分类在一个表中,主键......
  • 国内有哪些好用的搜索引擎【推荐】?
    百度Baidu百度是中文老牌搜索引擎,中文信息相对比较全面。英文信息比较少,如果遇到一些热门的商业性词汇,第一个大部分篇幅几乎会被广告占满。搜狗Sogou搜索最早起源于搜......
  • 微软、谷歌、百度,AI改变的仅仅是搜索引擎吗?【变革目录】
    微软、谷歌、百度,AI改变的仅仅是搜索引擎吗?【变革目录】时间和精力限制,文章为严肃向且尽量言简意赅。年后,ChatGPT又再次掀起了新的热潮,这场热潮随着微软发布整合了ChatG......
  • TDengine 3.0.2.5 查询再优化!揭秘索引文件的工作原理
    TDengine 3.0虽然对底层做了大规模的优化重构,但是相对于数据文件的工作逻辑和2.0相比是整体保持不变的。本系列文章的主旨在于帮助用户深入理解产品,并且拥有基本的性......
  • myisql索引调优
    Mysql索引为什么选择B+树这种数据结构1、二叉树无法解决单边增长的问题。2、红黑树虽然可以通过节点旋转来达到节点自动平衡的问题、但无法有效控制树的高度。3、B树、B......