搜索引擎的基础-倒排索引

  昨天看hadoop视频的时候里面提到了google搜索引擎里使用的倒排索引技术,当时没有理解,今天翻阅了一些文档终于觉得拨云见日了,下面从用户在谷歌首页进行网页搜索这个角度来说明。

  首先上一张图:

  

  简单的来说,当用户在搜索框输入一个关键词点击查询按钮后,后台程序首先会计算出所查询词的哈希值,然后去哈希表里寻找匹配项,哈希表的每一项通过指针指向一个哈希冲突表,哈希冲突表里存放着具有相同哈希值的单词。也就是说,搜索的第一步获取一个和用户搜索关键词相同哈希值的单词列表(冲突表)。然后会用这个冲突表里的单词和用户搜索词一一比较,找到完全匹配的单词。而冲突表中的每个单词对应一个倒排列表,如下图:

  

  这是一个最简单的倒排列表,每个单词对应唯一的单词ID,每个文档(即用户搜索后返回的网页)对应唯一的DocId,倒排列表中记录着每一个单词在哪些文档中出现过。比如跳槽这个单词,在编号为1,4的文档中出现过,那么就返回编号为1,4的两个网页作为搜索结果展示在页面上。

时间: 2024-10-06 23:33:10

搜索引擎的基础-倒排索引的相关文章

[Search Engine] 搜索引擎技术之倒排索引

倒排索引是搜索引擎中最为核心的一项技术之一,可以说是搜索引擎的基石.可以说正是有了倒排索引技术,搜索引擎才能有效率的进行数据库查找.删除等操作. 1. 倒排索引的思想 倒排索引源于实际应用中需要根据属性的值来查找记录.这种索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址.由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而称为倒排索引(inverted index). 在搜索引擎中,查询词可以切分成若干个单词,所以对于搜索引擎中的倒排索引对应的属性就是单词,而对应的记录就是

mapreduce实现搜索引擎简单的倒排索引

使用hadoop版本为2.2.0 倒排索引简单的可以理解为全文检索某个词 例如:在a.txt 和b.txt两篇文章分别中查找统计hello这个单词出现的次数,出现次数越多,和关键词的吻合度就越高 现有a.txt内容如下: hello tom hello jerry hello kitty hello world hello tom b.txt内容如下: hello jerry hello tom hello world 在hadoop平台上编写mr代码分析统计各个单词在两个文本中出现的次数 其实

时间序列数据库选型——本质是列存储,B-tree索引,抑或是搜索引擎中的倒排索引

时间序列数据库最多,使用也最广泛.一般人们谈论时间序列数据库的时候指代的就是这一类存储.按照底层技术不同可以划分为三类. 直接基于文件的简单存储:RRD Tool,Graphite Whisper.这类工具附属于监控告警工具,底层没有一个正规的数据库引擎.只是简单的有一个二进制的文件结构. 基于K/V数据库构建:opentsdb(基于hbase),blueflood,kairosDB(基于cassandra),influxdb,prometheus(基于leveldb) 基于关系型数据库构建:m

Elastic Stack从入门到实践

第1章 课程概述对课程整体进行介绍给出相关学习说明和建议1-1 _课程导学1-2 说明和建议 第2章 Elasticsearch 篇之 入门本章会对 Elasticsearch 篇进行一个总体的介绍,让大家对该篇每一章要讲解的内容有初步的了解.然后会讲解 Elasticsearch 中常见的术语.api,然后运行 Elasticsearch 并实际感受 api 的调用方式,为接下来的课程做好准备.2-1 -术语介绍2-2 -Document介绍2-3 -Index介绍2-4 -restapi介绍

这就是搜索引擎--读书笔记四--索引基础

搜索引擎索引基础 前几天我阅读了搜索引擎索引这一章,发现倒排索引这一方法确实很巧妙和迷人,它包含的原理和设计方法很独到.所以接下来,我想把我学习到的索引方面的知识给大家讲解一下,总共分为三篇:索引基础.索引建立和更新.索引查询. 我们首先认识倒排索引基本概念 文档:一般搜索引擎的处理对象是互联网网页,而文档这个概念要更宽泛些,代表以文本形式存在的存储对象,相比网页来说,涵盖了更多形式,比如Word.PDF.HTML.XML等不同格式的文件都可以称为文档. 文档集合:由若干文档构成的集合称为文档集

搜索引擎分类和基础架构概述

搜索引擎的标准定义:搜索引擎(Search Engine)是指根据一定的策略.运用特定的计算机程序从互联网上搜集信息,在对信息进行组织和处理后,为用户提供检索服务,将用户检索相关的信息展示给用户的系统.从上述定义中我们可以获得几个有关搜索引擎的关键步骤,分别为:搜集信息:组织和处理信息:展示信息. 1. 搜索引擎分类 1)全文搜索引擎 全文搜索引擎是从网站提取信息从而构建网页数据库的. 全文搜索引擎的是如何搜集网站的呢?其实这里一般有两种方法: 1> 搜索引擎定期派出网络爬虫(也成为是蜘蛛或者机

搜索引擎基本原理

摘要:最近读了<这就是搜索引擎:核心技术详解>一书,简要作个记录. __________________________________________________ 目录 [1]搜索引擎概述 [2]搜索引擎的基础技术 [3]搜索引擎的平台基础 [4]搜索结果的改善优化 __________________________________________________ [1]搜索引擎概述 过去的15年间,互联网信息急剧膨胀,靠人工的方式去筛选获取有用信息不再可能,因此搜索引擎应运而生.根据

Hadoop之倒排索引

前言: 从IT跨度到DT,如今的数据每天都在海量的增长.面对如此巨大的数据,如何能让搜索引擎更好的工作呢?本文作为Hadoop系列的第二篇,将介绍分布式情况下搜索引擎的基础实现,即“倒排索引”. 1.问题描述 将所有不同文件里面的关键词进行存储,并实现快速检索.下面假设有3个文件的数据如下: file1.txt:MapReduce is simple file2.txt:mapReduce is powerful is simple file3.txt:Hello MapReduce bye M

用GO语言实现一个简单的搜索引擎

用GO语言实现一个简单的搜索引擎 项目地址是:https://github.com/wyh267/FalconEngine 对搜索引擎感兴趣的可以去看看这本书,比较浅并且也比较完整的介绍了一个搜索引擎的全部机能. 我的这个搜索引擎原始数据是MySql数据库的,大家可以根据需要进行二次开发,用来支持其他数据库或者本地文件,Detail文件是存储在Redis数据库中,同样这部分也可以根据自己的需要二次开发,使用本地文件或者其他数据库,倒排索引和正排索引本地存储的时候使用的json格式,比较耗磁盘,第