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

倒排索引

时间:2024-10-16 10:22:59浏览次数:6  
标签:倒排 检索系统 索引 文档 词项 字典

倒排索引:

倒排索引(Inverted Index)‌是一种索引方法,主要用于存储在全文搜索下某个单词在一个文档或者一组文档中的存储位置的映射。它是由属性值来确定记录的位置,而不是由记录来确定属性值,因此被称为倒排索引。倒排索引被广泛应用于‌文档检索系统中,是文档检索系统中常用的数据结构。

倒排索引的组成部分

​ 倒排索引主要由三部分组成:倒排表(posting list)、‌词项字典(term dictionary)和词项索引(term index)。倒排表是一个有序数组,存储了匹配某个词项(词汇)的所有文档的ID。词项字典用于存储所有的词项及其相关信息。词项索引则用于快速查找词项在字典中的位置。

倒排索引的构建过程

​ 构建倒排索引的过程包括以下几个步骤:首先,对文本数据进行分词处理,将文本分解成独立的词项。然后,使用哈希方法去除重复的词项,确保每个词项在词典中只出现一次。接下来,为每个词项创建倒排列表,记录包含该词项的所有文档的ID。最后,将倒排列表和词项字典合并,形成完整的倒排索引。

倒排索引的使用场景

​ 倒排索引主要用于全文搜索和文档检索系统中。例如,在搜索引擎中,用户输入查询关键词时,系统通过倒排索引快速定位包含这些关键词的文档,然后根据相关算法对结果进行排序和展示。这种索引方法极大地提高了查询效率和准确性。

标签:倒排,检索系统,索引,文档,词项,字典
From: https://www.cnblogs.com/loong3/p/18469270

相关文章

  • 软件测试笔记|数据库基础|创建索引的原则
    创建数据库索引有以下原则:一、选择合适的列创建索引1.选择经常用于查询条件的列:如果某一列经常在WHERE子句中作为条件出现,那么为该列创建索引可以大大提高查询速度。例如,在一个员工表中,如果经常根据员工的姓名进行查询,那么为“姓名”列创建索引是一个不错的选择。2.选择......
  • ElasticSearch的倒排索引和相关概念与MySQL的对比
    ElasticSearch的倒排索引和相关概念在用关系型数据库时,一些频繁用作查询条件的字段我们都会去建立索引来提升查询效率。在关系型数据库中,我们一般都采用B树索引进行存储,所以B树索引也是我们接触比较多的一种索引数据结构,但是在使用过程中,我们发现无法使用关系型数据库进行类......
  • Elasticsearch 倒排索引,ES相关概念对比MySQL
    elasticsearch之所以有如此高性能的搜索表现,正是得益于底层的倒排索引技术。什么是倒排索引?倒排索引的概念是基于MySQL这样的正向索引而言的。倒排索引中有两个非常重要的概念:文档(Document):用来搜索的数据,其中的每一条数据就是一个文档。例如一个网页、一个商品信息词条(Te......
  • MySQL 唯一索引和普通索引
    唯一索引和普通索引的区别查询过程基本没有区别selectidfromTwherek=5InnoDB数据的读写单位是数据页,默认是16KB。更新过程普通索引可以使用changebuffer(会持久化),唯一索引不行。当需要更新一个数据页是,如果数据页在内存中就直接更新,如果数据页还没在内存中,在不......
  • MySQL 选错索引
    查看执行计划选择的索引explainselect*fromtwhereabetween10000and10000;通过慢日志(slowlog)查看语句执行情况--启动慢日志SHOWVARIABLESLIKE'slow_query_log';--慢日志存储位置SHOWVARIABLESLIKE'slow_query_log_file';--慢日志阈值SHOWVARIABLES......
  • Elasticsearch正向索引与倒排索引
    Elasticsearch正向索引与倒排索引一、正向索引首先,要明白什么是正向索引,所谓正向索引,就是在查找某项数据时,按照id一条一条查找,如果当前数据中包含所需数据,则将当前数据取出,不包含则抛弃,直至全部遍历结束。例如:当我们按照正向索引去寻找包含小米三星苹果的数据时,会从头遍历一遍,......
  • 倒排索引和ES相关概念对比MySQL
    1.倒排索引1.1倒排索引两个重要概念:文档:用来搜索的数据,其中的每一条数据就是一个文档。例如一个网页、一个商品信息以京东商城为列词条(Term):对文档数据或用户搜索数据,利用某种算法分词,得到的具备含义的词语就是词条。例如:我是中国人,就可以分为:我、是、中国人、中国、国人这......
  • 倒排索引
    倒排索引(InvertedIndex)是一种索引方法。在信息检索系统中非常常见,尤其是在全文搜索引擎中。主要思想:将文档中出现的每个词与包含该词的文档列表关联起来,从而实现快速检索。倒排索引的基本结构1、词汇表(Dictionary):包含所有文档集合中出现过的唯一词汇,以及指向每个词对应的......
  • [如何实现多向量索引策略提升检索精度:从理论到实战]
    如何实现多向量索引策略提升检索精度:从理论到实战引言在信息检索领域,检索精度往往是衡量系统性能的重要指标之一。多向量索引策略(Multi-VectorIndexingStrategy)是提高检索精度的有效方法之一。本文将详细介绍这种策略的实现方法,并通过具体的代码示例帮助读者在实际项目......
  • MySQL面试题-为什么用了索引就会加快查询
    快速定位数据索引类似于书的目录,它提供了一种快速定位数据的方法。没有索引时,MySQL需要逐行扫描整个表(全表扫描)来查找满足查询条件的记录,这可能需要很长时间,特别是当表很大时。而有了索引,MySQL可以迅速定位到索引中满足条件的记录位置,然后直接访问这些记录,从而大大减少了需要......