倒排索引原理理解

 倒排索引原理

些重要概念:

       文档(Document):一般搜索引擎的处理对象是互联网网页,而文档这个概念要更宽泛些,代表以文本形式存在的存储对象,相比网页来说,涵盖更多种形式,比如Word,PDF,html,XML等不同格式的文件都可以称之为文档。再比如一封邮件,一条短信,一条微博也可以称之为文档。在本书后续内容,很多情况下会使用文档来表征文本信息。

       文档集合(Document Collection):由若干文档构成的集合称之为文档集合。比如海量的互联网网页或者说大量的电子邮件都是文档集合的具体例子。

       文档编号(Document ID):在搜索引擎内部,会将文档集合内每个文档赋予一个唯一的内部编号,以此编号来作为这个文档的唯一标识,这样方便内部处理,每个文档的内部编号即称之为“文档编号”,后文有时会用DocID来便捷地代表文档编号。

       单词编号(Word ID):与文档编号类似,搜索引擎内部以唯一的编号来表征某个单词,单词编号可以作为某个单词的唯一表征。

       倒排索引(Inverted Index):倒排索引是实现“单词-文档矩阵”的一种具体存储形式,通过倒排索引,可以根据单词快速获取包含这个单词的文档列表。倒排索引主要由两个部分组成:“单词词典”和“倒排文件”。

       单词词典(Lexicon):搜索引擎的通常索引单位是单词,单词词典是由文档集合中出现过的所有单词构成的字符串集合,单词词典内每条索引项记载单词本身的一些信息以及指向“倒排列表”的指针。

       倒排列表(PostingList):倒排列表记载了出现过某个单词的所有文档的文档列表及单词在该文档中出现的位置信息,每条记录称为一个倒排项(Posting)。根据倒排列表,即可获知哪些文档包含某个单词。

       倒排文件(Inverted File):所有单词的倒排列表往往顺序地存储在磁盘的某个文件里,这个文件即被称之为倒排文件,倒排文件是存储倒排索引的物理文件。 855959-20170224195649726-238255448.png         855959-20170224200237991-592489046.png

                                 图1  单词-文档矩阵             

                                                                                                                                                      图2  倒排索引模型

 倒排索引实例:

                                              855959-20170224200716070-76147588.png

                    855959-20170224200724179-596243521.png

         以单词“加盟”为例,其单词编号为6,文档频率为3,代表整个文档集合中有三个文档包含这个单词,对应的倒排列表为{(2;1;<4>),(3;1;<7>),(5;1;<5>)},含义是在文档2,3,5出现过这个单词,在每个文档的出现过1次,单词“加盟”在第一个文档的POS是4,即文档的第四个单词是“加盟”,其他的类似。

      注:单词词典,倒排列表是在构建索引时创建的;

转载于:https://my.oschina.net/u/3734816/blog/3033982

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Solr(Apache Solr)和Elasticsearch(ES)都是流行的搜索引擎,它们都使用倒排索引来实现高效的全文搜索。下面是Solr的倒排索引和ES的倒排索引之间的一些区别: 1. 底层技术:Solr是基于Apache Lucene构建的,而ES也是基于Lucene构建的。因此,它们共享许多相似的特性和原理。 2. 分布式架构:ES专注于分布式搜索和分析,具有内置的分布式功能。它提供了水平扩展性和高可用性,适用于大型集群环境。而Solr可以通过SolrCloud实现分布式搜索,但相对于ES来说,配置和管理方面可能稍显复杂。 3. 功能和插件生态系统:Solr提供了丰富的功能和插件,例如地理空间搜索、分片索引等。它也有大量的可扩展性选项,可以根据需求进行自定义。ES也提供了类似的功能和插件生态系统,并且在近年来在这方面发展得非常迅速。 4. 查询语法:Solr使用一种称为Solr查询语法(Solr Query Syntax)的自定义查询语言,该语言具有灵活的查询语法和查询参数。ES使用JSON格式的查询DSL(Domain Specific Language),使得查询结构更加清晰和易于理解。 5. 文档管理:Solr和ES都支持结构化和非结构化数据的索引和搜索。Solr更加适合于传统的文档管理,例如处理大规模的XML和CSV文件。ES则更加适合于实时数据和日志分析,可以通过简单的API实时索引和搜索数据。 总的来说,Solr和ES在倒排索引的实现上具有相似之处,但在分布式架构、功能和查询语法等方面存在一些差异。选择使用哪个取决于你的具体需求和技术栈。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值