倒排索引简单理解

http://blog.csdn.net/hguisu/article/details/7962350

http://blog.csdn.net/hguisu/article/details/7969757

=====================           我是分割线          =============================

 

倒排索引(英语:Inverted index),也常被称为反向索引、置入档案或反向档案,是一种索引方法,被用来存储在全文搜索下某个单词在一个文档或者一组文档中的存储位置的映射。它是文档检索系统中最常用的数据结构。通过倒排索引,可以根据单词快速获取包含这个单词的文档列表。倒排索引主要由两个部分组成:“单词词典”和“倒排文件”。

倒排索引有两种不同的反向索引形式:
        一条记录的水平反向索引(或者反向档案索引)包含每个引用单词的文档的列表。
        一个单词的水平反向索引(或者完全反向索引)又包含每个单词在一个文档中的位置。
后者的形式提供了更多的兼容性(比如短语搜索),但是需要更多的时间和空间来创建。
        现代搜索引起的索引都是基于倒排索引。相比“签名文件”、“后缀树”等索引结构,“倒排索引”是实现单词到文档映射关系的最佳实现方式和最有效的索引结构.

单词词典常用的数据结构有   哈希加链表     树形结构  

1、简单索引构建

索引的建立相当于从正排表到倒排表的建立过程。

流程:

          分词 -> 去重 -> 单词倒排

2、合并法建立索引

归并法,即每次将内存中数据写入磁盘时,包括词典在内的所有中间结果信息都被写入磁盘,这样内存所有内容都可以被清空,后续建立索引可以使用全部的定额内存。

 

合并流程:

1)页面分析,生成临时倒排数据索引A,B,当临时倒排数据索引A,B占满内存后,将内存索引A,B写入临时文件生成临时倒排文件,
2)  对生成的多个临时倒排文件 ,执行多路归并 ,输出得到最终的倒排文件 ( inverted file)。

索引创建过程中的页面分析 ,特别是中文分词为主要时间开销。算法的第二步相对很快。这样创建算法的优化集中在中文分词效率上。

 

3、并行与分布式建立索引

 

转载于:https://www.cnblogs.com/sn944/p/5473430.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值