`

搜索引擎之正排索引和倒排索引

    博客分类:
  • ES
 
阅读更多

正排表是以文档的ID为关键字,表中记录文档中每个字的位置信息,查找时扫描表中每个文档中字的信息直到找出所有包含查询关键字的文档。

正排表结构如图1所示,这种组织方法在建立索引的时候结构比较简单,建立比较方便且易于维护;因为索引是基于文档建立的,若是有新的文档加入,直接为该文档建立一个新的索引块,挂接在原来索引文件的后面。若是有文档删除,则直接找到该文档号文档对应的索引信息,将其直接删除。但是在查询的时候需对所有的文档进行扫描以确保没有遗漏,这样就使得检索时间大大延长,检索效率低下。     

尽管正排表的工作原理非常的简单,但是由于其检索效率太低,除非在特定情况下,否则实用性价值不大。

倒排索引(反向索引)

倒排表以字或词为关键字进行索引,表中关键字所对应的记录表项记录了出现这个字或词的所有文档,一个表项就是一个字表段,它记录该文档的ID和字符在该文档中出现的位置情况。

由于每个字或词对应的文档数量在动态变化,所以倒排表的建立和维护都较为复杂,但是在查询的时候由于可以一次得到查询关键字所对应的所有文档,所以效率高于正排表。在全文检索中,检索的快速响应是一个最为关键的性能,而索引建立由于在后台进行,尽管效率相对低一些,但不会影响整个搜索引擎的效率。
倒排表的结构图如图2:

正排索引是从文档到关键字的映射(已知文档求关键字),倒排索引是从关键字到文档的映射(已知关键字求文档)。

分享到:
评论

相关推荐

    文本全文搜索引擎 利用倒排索引实现

    倒排索引是实现这种搜索引擎的关键技术,它极大地优化了文本匹配和搜索过程。在这个主题中,我们将深入探讨倒排索引的概念、工作原理以及在Python中的实现。 **倒排索引概念** 倒排索引(Inverted Index)是一种...

    制作简单的搜索引擎,构建倒排索引

    搜索引擎是信息检索领域的重要工具,其核心在于倒排索引的构建。倒排索引是一种高效的数据结构,用于快速定位到包含特定查询词的文档。在这个项目中,我们使用简单的C语言来实现这一过程,这对于初学者理解搜索引擎...

    中文搜索引擎分块倒排索引存储模式

    综上所述,标题和描述中所涉及的知识点主要围绕搜索引擎的核心技术之一——倒排索引进行。分块倒排索引存储模式作为倒排索引的一种改进方案,在处理大型文档集时,能够显著提升搜索效率。同时,对于中文搜索引擎,...

    搜索引擎-倒排索引基础知识

    搜索引擎-倒排索引基础知识 搜索引擎的索引是实现“单词-文档矩阵”的具体数据结构,倒排索引是实现单词到文档映射关系的...倒排索引是搜索引擎的核心技术之一,广泛应用于搜索引擎、自然语言处理和文本挖掘等领域。

    基于倒排索引表的搜索引擎简单实现

    倒排索引是搜索引擎实现高效搜索的关键技术之一。在这个项目中,我们使用Java编程语言来实现一个简单的搜索引擎,主要涉及以下几个核心知识点: 1. **倒排索引**:倒排索引是一种数据结构,它将每个词映射到包含这...

    倒排索引实现简单的搜索引擎功能

    倒排索引是一种高效的数据结构,常用于全文搜索引擎中,以快速定位到包含特定查询词的文档。在本项目中,我们使用MFC(Microsoft Foundation Classes)库,一个基于C++的类库,来实现一个简单的可视化的搜索引擎。...

    c++实现倒排索引算法

    倒排索引是一种高效的数据结构,常用于全文搜索引擎和数据库系统中,用于快速查找包含特定词汇的文档或数据。在C++中实现倒排索引算法可以帮助我们理解其原理并优化搜索性能。以下是对倒排索引算法及其C++实现的详细...

    spark实现财经新闻搜索引擎(正文提取、中文分词、倒排索引构建、执行搜索)

    3. **倒排索引构建**:倒排索引是搜索引擎的核心,它将词汇映射到包含该词汇的文章列表及其频率(TF值)。这一步骤包括计算每个词汇的出现次数,以及对应文章的ID,然后将这些信息存储在文本文件或HBase中。TF值的...

    c++构建倒排索引并搜索

    在计算机科学领域,倒排索引(Inverted Index)是一种高效的数据...这个项目不仅可以帮助学习者掌握C++编程,还能深入理解倒排索引的原理和实现,对于从事搜索引擎开发或文本分析的人来说,是一项非常有价值的实践。

    使用倒排索引实现的简单的搜索引擎

    使用倒排索引实现的简单的搜索引擎demo 能对莎士比亚全集的文本进行搜索,并显示该词语所在的篇目和所在句子 源代码及说明也可在github获取 https://github.com/yunwei37/myClassNotes

    C++倒排索引

    倒排索引是一种高效的信息检索方法,常用于搜索引擎和数据库系统中,用于快速定位文档中包含特定关键词的位置。在C++中实现倒排索引,需要理解数据结构和算法的基础,以及如何处理文本数据。 首先,我们要理解倒排...

    倒排索引如何建立 以及如何压缩

    倒排索引的建立和压缩是全文搜索引擎性能优化的重要方面。 建立倒排索引首先需要收集所有文档并进行处理,包括分词(Tokenization)、去除停用词(Stop words)、词干提取(Stemming)等预处理步骤。预处理后的词项...

    搜索引擎核心技术与算法-——-倒排索引初体验.pdf

    搜索引擎核心技术与算法 - 倒排索引初体验 在本篇文章中,我们将探讨搜索引擎核心技术与算法中的一个重要概念:倒排索引。...在搜索引擎、自然语言处理和信息检索等领域,倒排索引都是非常重要的技术之一。

    倒排索引的资料,ppt版,很详细

    倒排索引是一种高效的数据结构,常用于全文搜索引擎和数据库系统中,用于快速定位文档或数据中的特定词汇。它的核心思想是将数据集中每个单词出现的位置进行反转,从而能够快速找到包含某个词的所有文档。这一概念在...

    基于倒排索引的搜索引擎.zip

    在本压缩包“基于倒排索引的搜索引擎.zip”中,包含了多个文件,它们与一个重要的计算机科学主题紧密相关——搜索引擎技术,特别是基于倒排索引的实现。倒排索引是现代搜索引擎的核心组成部分,它使得高效的信息检索...

    倒排索引倒排索引.docx

    倒排索引的出现,解决了正向索引在搜索引擎中的性能瓶颈问题。 正向索引(Forward Index)是一种数据结构,用于将文档映射到包含的单词。每个文档都对应一个文件 ID,文件内容被表示为一系列关键词的集合。例如,...

    分布式搜索引擎中关键词倒排索引方法仿真.pdf

    本文提出的“分布式搜索引擎中关键词倒排索引方法”旨在解决传统信息检索方法中存在的检索效率低、安全性差和准确性不足的问题。关键词倒排索引是一种常用的全文搜索引擎技术,它能快速定位到包含特定关键词的文档。...

    倒排索引java实现

    倒排索引是一种高效的数据结构,常用于全文搜索引擎中,以快速定位文档中包含特定关键词的位置。在Java中实现倒排索引,可以利用标准库或者其他第三方库,如Apache Lucene,但这里我们主要讨论基于自定义代码的实现...

Global site tag (gtag.js) - Google Analytics