1 / 4
文档名称:

搜索引擎之倒排索引:产品经理需要了解的搜索算法.pdf

格式:pdf   大小:212KB   页数:4页
下载后只包含 1 个 PDF 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

搜索引擎之倒排索引:产品经理需要了解的搜索算法.pdf

上传人:彩霞 2023/1/19 文件大小:212 KB

下载得到文件列表

搜索引擎之倒排索引:产品经理需要了解的搜索算法.pdf

相关文档

文档介绍

文档介绍:该【搜索引擎之倒排索引:产品经理需要了解的搜索算法 】是由【彩霞】上传分享,文档一共【4】页,该文档可以免费在线阅读,需要了解更多关于【搜索引擎之倒排索引:产品经理需要了解的搜索算法 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。搜索引擎之倒排索引:产经品理需要了解的搜索算法 
 互联时网代,信息纷繁海量,人们过通搜索引擎直达“心中所想”已是常态么。那搜索引擎
到底是如何高效查标找目内容呢?本文主要介绍搜索引擎里一个比较重要的结构——倒排
索引。 
1 倒排索引简介 
倒排索引(英文:Inverted Index),是一种检统种索引方法,常被用于全文索系中的一
单词文档映射结构。 
现绝代搜索引擎大多数的索引都是基于倒排索引来进这实际应行构建的,源于在用当中,
用户查时输关键户记在使用搜索引擎找信息往往只入信息中的某个属性字,如一些用不得
歌名,会输词查入歌来找歌名;输入某个节目内容片段来查该节找目等等。 
面对海量的信息数据,为满户顺应时足用需求,信息代快速获取信息的趋势聪开发,明的
者们在进行搜索引擎开发时对这些信息数据进行逆向运算,研发了“关键词——文档”形式
的一种结实现过映射构,了通了物品属性信息对进物品行映射,可以帮助用户快速定位到
目标获难信息,极大地降低了信息取度。倒排索引又叫反向索引,它是一种维逆向思运算,
是现检领代信息索域里面最有效的一种结索引构。 
2 倒排索引&FAQ 
从用户请结许对求到果返回,多朋友会倒排索引在检统过产索系中的工作程生好奇,本小
节就倒排索引的一些常规认识,有如下问题: 
Q1:何为么索引?倒排索引又是什? 
索引,是为查过标预创种储结了加快信息找程,基于目信息内容先建的一存构。例如:一
本书录论读,没有目,理上也是可的,只是当你合上当前在读时开书的内容,下次再翻本
去查找,就比较耗费时间了。如果增加几页目录,我们可以快速地了解书本的大体内容分
布,以及每节页一个章面位置的分布情况,这样我们查询内容的效率自然就会提高。书的
目录,就是书本内容一种简单索引。 
倒排索引,是索引技术中的一种,它是基于信息主体的关键属性值进行构建的。 
假设检索系统中只有一个商品——衣服A,基于该结产商品构建其倒排索引构之后,会生
上图结这样户过右表中的索引构,用可以通搜“AAA”,“蓝色”,“M码”,“猴子”,均可找到
该检扩检围商品,加快了索速度,大了索范。 
Q2:当接受到用户查询请求时,倒排索引中发生了什么?
一般地,当接受到用户查询请时进求,入到倒排索引进检时行索,在返回结果的过程中,
主要有以下几个:步骤 
上述该过程是较为简洁的一个检索过程。事实上,在生产环境中因为业务环境的繁杂,会
使得索引的设计模式变得复杂且繁多。前文主要通过概念图来介绍倒排索引的架构体系,
一个成熟的检索系统往往拥有一套较为稳定的算法体系,用于处理生产环境中的每一处细
节术技需求。上述步骤涉中及了大量相关的数据储存技术查、找算法、排序算法、文本处
理技术甚至I/O技等等。术 
3 倒排索引技术剖析 
构建倒排索引是搜索引擎里面至关步骤术层对重要的一个,从技面去分析,于构造一个倒
排索引,主要分为两部分: 
 term词项构造 
词项构造是在构建索引过步骤词项程中必不可或缺的一个,构造效果的好坏往往会直接影
响到用户验结该过词统项的搜索体,以及搜索果的召回。程主要是利用分系将文档中的各
属性的文本信息拆分成一些表意较强且重要的词汇,便于用户查找。 
在词项构造的过程中,利用分词系统对文本进行处理时往往涉及到很多方面的问题,而且
对语种处于不同,会有不同的理机制。下面主要介绍处时涉问题在理文本及到的几个: 
(1)文本词条化 
一段文本信息,它本身是一个由语组言成的字符串系列,本项术技点的主要任务是将一段
连续的文本序列信息拆分成多个子序列。它与语言本身相关,面对语处不同的言,理文本
的方式往往会不一样对。于中文,由于其语义紧言多歧且表意凑的特性,在实际应用中,
一般需要借助NLP的相关术对进技内容行特征抽取,甚至人工标注等,生成对应词的典,
随后再基于词词进词较词典利用分器行分,才能看到好的文本条效果。 
而对于英文,普遍的英文句子,段落内容,它会以空格符作为单词之间的分隔符,所以一
般情况下,以空格符对进英文内容行拆分,已经可以取得比较好的效果,不过英文中也会
存在一些特殊模式,如带上撇号的格式——“Teacher’s office”,连字符格式——“English‐
speaking”,也需要进对应处行的理,把单词提取出来。 
(2)停用词过滤 
停用词是指在文档列表中出现频较的数高且价值不大的词。以英文为例,在英文文档中出
现较次数多的停用词如:”is”、”the”、”I”、“and”、”me”等等;这一类词语在往往出现在所
有文档中,若以此类词语为term进则产行索引构建,会生多个全量文档索引列表。停用
词过滤的使用往往依赖于实际使用场景,关键字查询使用得较为频繁的场景如某一个电商
品牌的垂直型搜索引擎,一个合适的停用词显表得尤为重要;而对于Web搜索引擎如百
度、Google等,该类型的搜索引擎面向的查询场景较多,通用性较强,往往不需要停用词
过滤。 
(3)条一化词归 
基于上述两点,将文档内容转换成一个或多个term后,在查询时,最理想的情况是用户
输关键刚入的字好与term完全匹配,实际上,很多时候用户输入的query与条之往词间
往不会完全匹配,而用户们还是希望query能与词进条行匹配,比如用户查询在“color”时,
用户关肯定也希望能看到于“colour”的返回结词归果。条一化的任务就是将一些看起来不
完全一致的词为条划分一个等价类,比如英式单词colour和美式单词color归为一、类
Air‐conditioner和airconditioner归为一类等等;这样,用户在查询时,只要对等价类中
的任意单词进行搜索,都会返回包含等价类中的任意一个单词的文档。 
(4)干提取、形原词词还 
这词规是条范化的两种重要方式,用于扩检展索范围词。干提取的主要思想是“缩减”,将
词转为词条化干,如:将“beaches”处理成“beach”, 将“bananas”处理成“banana”等;词还形
原的主要思想是“转换”,如:将“doing”、“done”、“did”转化成原型“do”,将“given”、“gave”
转化成原型“give”等;词干提取的实现方法一般是基于规则对词条后缀进行缩减,至于词
形还原,其实现方法需要词典来进词变行形化的映射;基于在此结词归合条一化技术对,
扩检展索范围产会生一定的正向作用。 
 倒排记录表的构建 
倒排记录表的构建过程面向的是海量的文档数据集合,在大小规模上它比词项集合要大得
多,无法完全存放在内存当中,需要写入磁盘记录时们为。因此,在构建倒排表我有必要
内存的使用作考虑。 
在无法全内存的情况下,倒排记录表的主要构建思想是“分割”,亦即基于一定的处逻辑理
对全量文档集合进行等份的批量处理。对于不同的业务需求,构建倒排记录表的方法往往
会不一样。基本的构建方法如下: 
从业务应用场景的角度出发,倒排记录表的构建方法主要有:单遍扫描和多遍扫描;从工
程角度出发记录,倒排表的构建方法主要有:分布式构建和动态构建。 
 单扫遍描构建 
顾义名思, 单扫遍描指的是仅对文档集合进行一次遍历,即可完成倒排索引的构建。由于
内存开销问题,会将全量文档集进行分割,转换成几个内存大小相同的文档集合,然后依
次执该简单户行前文中提及到的构建方法。方法能快速构建一个可行的倒排索引,帮助用
通过关键字匹配快速找到目标文档。 
 多遍扫描构建
多遍扫时获关关词项描主要用于构建索引取于文档的更多相信息,如一些TF‐IDF指、标
词频、文档内容关系等,以丰富倒排记录表的内容,为搜索引擎进行功能扩充;在工业流
水线上,单遍扫描构建索引由于其查询类型的丰富度不够,显然已经不能满足广大用户的
需求了。搜索用户的需求并不止于关键字查询,像短语查询、模糊查询、精确筛选、模糊
筛选、排序、聚合统计等等需求。这意味着我们在构建倒排列表时获要尽可能取文档的更
多信息,便于查询时的微运算、重排序、相关性分析等技术需求。 
 分布式构建 
对于一些大型搜索引擎如Web搜索引擎,单台机器已无法支撑其索引构建,需要多台机
器组对进处成集群其行分布式理,将构建成的倒排索引进行分割,分布在多台机器上,每
台机器各自形成独立的索引结户发请时构,当用出求,会有多台机器响应,并且根据用户
的搜索需求在各自的索引结构进行查询,返回相关结果,再将所有结果在内存中进行集中
处理,最后把处理过的最优结果返回给用户。在具体的实现过程中,工程师们往往更钟情
于一些通用的面向大规计模机器算的分布式架构如Hadoop中的MapReduce、Java中的
Fork/join架构等,极大地提高了软开发件效率。 
 动态构建 
该方法中的文档集合是变这对进时对进化的,要求在文档集行索引构建也要文档的更新行
自适应问题见电领。此常于商域里,如商品的上下架、商品内容的更新等,都会引发索引
的动态更新问题。于此,我们常采取一些策略型方法来解决该类型的问题,提高索引的实
时见性。常的策略如下两种: 
策略1是最简单直接、且有效的索引更新策略,对于数量级较大的搜索引擎来说处理简单
便捷,由于动态索引计算的复杂性,使用其它策略会使得索引难维护,甚至引发严重的性
能问题。所以大型搜索引擎往往更倾向于周期性重建索引,不过这会涉及到索引热切换的
问题,大量的文档经常会产生持续性的文档更新情况,这对于索引热切换时会造成一定的
困难处,理不好会导致数据丢失,用户查不到新文档等问题。 
策略2中在进辅时较储开销较这行主索引合并会遇到比大的存,由于文档量大,意味着在
进时涉读行合并操作会及到大量倒排文件的写操作,要想将该过处该程高效化,目前能理
问题的文件系统极其稀少,所以该策略在生产环境中往往可用性并不高。 
4 总结 
在生实际产环境中,由于业务的繁杂,倒排索引的技术体系会比本文所阐述的技术点要复
杂讲得多。本文主要解了倒排索引的作用、索引构建方法、用户为应行分析以及索引的用
场发绍现术景,从整体出,向大家介代倒排索引大致的技体系,帮助大家了解倒排索引的
概念,了解搜索引擎。可能本文阐术述的技点、架构体系会因为笔者个人的理解偏差而存
在一些不足或欠缺丰富。