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

倒排索引

时间:2023-03-29 19:44:53浏览次数:33  
标签:倒排 title value 单词 索引 文档

正排索引:key-value 中,通过 key 去寻找 value。 倒排索引:通过 value(或包含 value)去寻找对应的 key。 正排索引需要首先对全局进行扫描遍历,进而从中做筛选;而倒排索引可以仅抽取符合条件的 value 值,节省大量的资源。 每个被索引的字段都有自己的倒排索引。是否被索引由索引字段主要属性配置中index属性配置决定。 倒排索引数据组织方式由mapping中字段的分析器决定。 ES生成倒排索引和搜索数据机制 ES中,所有的文档在存储之前都要首先进行分析。用户可根据需要定义如何将文本分割成token、哪些token应该被过滤掉,以及哪些文本需要进行额外处理等等。   0 下面给出一个生成title字段倒排索引的例子。

  • 索引名:article
  • 字段名:title
  • 搜索内容:select * from article where title like ‘%搜索引擎%’

【文档】

文档ID title
1 ES是最流行的搜索引擎
2 Java是世界上最流行的语言
3 搜索引擎是如何诞生的

 

 

 

 

【文档 -> 单词词典】

单词词典:词典是由文档集合中出现过的所有单词构成的字符串集合。单词词典内每条索引项记载单词本身的一些信息以及指向“倒排列表”的指针。
单词 文档ID列表
ES 1
最流行 1,2
搜索引擎 1,3
Java 2
世界 2
语言 2
如何 3
诞生 3
                        【单词词典 -> PostingList】 PostingList:倒排列表记录了单词对应的文档信息集合。每条记录称为一个倒排项。倒排项包括:文档id、单词频率(TF,Term Frequency)、位置(Postion)、偏移(Offset )。
DocId TF Postion Offset
1 1 2 <7,11>
3 1 0 <0,4>
      所有单词的倒排列表往往顺序地存储在磁盘的某个文件里,这个文件被称之为倒排文件。倒排文件是存储倒排索引的物理文件。 0      

标签:倒排,title,value,单词,索引,文档
From: https://www.cnblogs.com/zhengbiyu/p/17270094.html

相关文章

  • ZoomEye:网络空间搜索引擎
    ZoomEye是一个强大的搜索引擎,允许用户查找有关设备、网站以及它们使用的服务和组件的信息。通过两个检测引擎,用户可以不断地探索和识别网络空间中的设备和网站。ZoomEye的......
  • MySQL 中索引是如何实现的,有哪些类型的索引,如何进行优化索引
    MySQL中的索引前言索引的实现哈希索引全文索引B+树索引索引的分类聚簇索引(clusteredindex)非聚簇索引(non-clusteredindex)联合索引覆盖索引回表查询......
  • MySQL索引、事务与储存引擎
     一、MySQL索引1.1索引的概念 索引是一个排序的列表,在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址(类似于C语言的链表通过指针指向......
  • 索引缺失和索引碎片
      SELECT[database_name]=db.[name],[table_name]=REVERSE(SUBSTRING(REVERSE(statement),2,(CHARINDEX('[',REVERSE(statement),2))-2)),[index......
  • SQL Server 索引类型及意义
    一、什么是索引拿汉语字典的目录页(索引)打比方:正如汉语字典中的汉字按页存放一样,SQLServer中的数据记录也是按页存放的,每页容量一般为4K。为了加快查找的速度,汉语字(词)典......
  • MySQL联合索引创建规则
    1、索引应该按照最常用于查询的列的顺序创建。这样可以最大程度地提高查询性能。2、如果查询中包含的列与索引中的列顺序不一致,则无法使用索引。因此,如果您有多个查询,每个......
  • lucene4.5源码分析系列:索引缓存以及刷新
    缓存和刷新是比较重要的问题,它涉及到lucene如何管理内存和磁盘。前面提到索引的结果是缓存在内存中的,等到一定时候才会将其刷新到硬盘上去。缓存在这里的目的无非是缓解高速......
  • Lucene 源代码剖析-9索引是如何存储的
    Lucene 源码剖析5           索引是如何存储的  5.1   数据存储类Directory      Directory及相关类负责文档索引的存储。           5......
  • Mysql索引底层数据结构与算法、Explain
    为什么建议InnoDB表必须建主键?并且推荐使用整型的自增主键?如果不由我们人工去创建主键,mysql也会帮我们去建立主键,没有必要把这么简单地工作交给Mysql。整型比较比UUID比......
  • 聊聊索引
    简介MySQL是最流行的关系型数据库之一,索引是MySQL中最重要的性能优化技术之一。通过优化索引可以显著提升查询性能,降低查询的时间复杂度。本文将介绍MySQL索引的类型、不......