`
sharp-fcc
  • 浏览: 110386 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

lucene 4.6 之indexing 之 IndexChain,索引数据结构

阅读更多
      /*
      This is the current indexing chain:

      DocConsumer / DocConsumerPerThread
        --> code: DocFieldProcessor
          --> DocFieldConsumer / DocFieldConsumerPerField
            --> code: DocFieldConsumers / DocFieldConsumersPerField
              --> code: DocInverter / DocInverterPerField
                --> InvertedDocConsumer / InvertedDocConsumerPerField
                  --> code: TermsHash / TermsHashPerField
                    --> TermsHashConsumer / TermsHashConsumerPerField
                      --> code: FreqProxTermsWriter / FreqProxTermsWriterPerField
                      --> code: TermVectorsTermsWriter / TermVectorsTermsWriterPerField
                --> InvertedDocEndConsumer / InvertedDocConsumerPerField
                  --> code: NormsConsumer / NormsConsumerPerField
          --> StoredFieldsConsumer
            --> TwoStoredFieldConsumers
              -> code: StoredFieldsProcessor
              -> code: DocValuesProcessor
    */

 DocumentsWriterPerThread 中具体负责索引工作的是IndexingChain,这些类跟持久化到磁盘上得索引文件都存在对应关系。

 

DocFieldProcessor 继承DocConsumer ,负责收集所有的field的信息,然后传给相应的per-field consumers , 来处理这些信息,具体的事情由他的成员变量,真正干实事的是:

NormsConsumer: 写 _X.nrm  文件,写归一化的文件。

 

FreqProxTermsWriter:写_X.tim,_X.tip, _X.doc, _X.pos文件。

 TermsVectorConsumer:写_X.tvx ,_X.tvd, _X.tvf 文件。

 

StoredFieldsProcessor: 写_X.fnm, _X.fdt,_X.fdx 文件。

 

在DocFieldProcessor中,用一个DocFieldProcessorPerField[]的数组来保存每一个field对应的处理对象,因为每一个对象都是复用的。

 

分享到:
评论

相关推荐

    lucene4.6jar

    4.6版本的倒排索引结构进行了优化,减少了磁盘I/O,提高了查询效率。 5. **分片与分布式搜索**:随着数据量的增加,单个索引可能无法承载。Lucene 4.6支持分片技术,可以将大型索引分散到多个节点上,实现分布式...

    lucene4.6例子

    在Lucene中,索引是文本数据的结构化表示,用于高效地进行全文检索。在Lucene 4.6中,创建索引涉及以下几个步骤: 1. 文档对象创建:首先,你需要将要索引的数据封装为Lucene的`Document`对象。每个`Document`可以...

    lucene4.6所有jar包

    Lucene 4.6在索引结构上进行了优化,引入了新的 postings format —— **Flex postings format**。这种格式提高了存储效率,降低了磁盘空间的占用,并且在查询性能上有所提升。同时,还引入了 **doc values** 和 **...

    Lucene4.6实战应用

    《Lucene4.6实战应用》一书主要探讨了Apache Lucene 4.6版本在实际项目中的应用和深入理解。Lucene是一个高性能、全文检索库,它为开发者提供了强大的文本搜索功能。作为开源项目,Lucene被广泛应用于各种信息检索...

    Lucene4.6+Solr4.6实战开发垂直搜索引擎视频课程

    18.lucene4.6索引的相关操作 19.lucene4.6的各种Query(1) 20.lucene4.6的各种Query(2) 21.lucene4.6的各种Query(3) 22.solr4.6的快速搭建 23.solr4.6索引的相关操作 24.solr4.6搜索的相关参数功能(1) 25.solr4.6搜索...

    lucene4.6实例

    - 索引(Index):一个结构化的数据存储,用于快速查找文档,类似于传统数据库的索引。 - 倒排索引(Inverted Index):Lucene的核心,将词元映射到包含该词元的文档列表。 3. **Lucene 4.6实例——LuceneDemo** ...

    基于Lucene4.6+Solr4.6+S2SH实战开发垂直搜索引擎

    对于抓取的数据,进行去重,去标签,然后利用lucene 和 solr 进行索引和搜索。 课程的最大特点是内容新颖全面而又通俗易懂。对于实际搜索引擎所涉及的各种核心技术都有全面细致的介绍,除了作为搜索系统核心的网络...

    lucene 4.6 API docs (CHM格式)

    Lucene提供了一个简单却强大的应用程式接口,能够做全文索引和搜寻。 从之前发布其他chm文件下载用户的反映看,有不少朋友反映下载后打开无法显示,这一般不是chm文件的问题,这里统一说明一下解决办法: 如果文件...

    lucene5+zoie实现近实时索引

    在Lucene 5版本中,引入了诸多优化,如更高效的倒排索引结构、改进的分词器、更灵活的查询语法等,使得搜索性能和灵活性都有所提升。然而,Lucene的索引构建是离线进行的,这意味着在新的数据到来时,必须重新构建...

    基于lucene技术的增量索引

    本文将深入探讨如何利用Lucene实现增量索引,这是一种在数据库或文件系统更新时仅对新数据或变化数据进行索引的技术,以降低资源消耗并保持搜索性能。 **1. Lucene基础知识** Lucene首先需要理解的是它的核心概念,...

    lucene 索引 查看 工具

    在 Lucene 的使用过程中,创建索引是关键步骤,而有时我们需要查看这些索引来了解其结构、内容以及优化搜索性能。这就是"Lucene 索引 查看 工具"的用途,它可以帮助我们分析和理解 Lucene 索引的工作原理。 主要...

    深入 Lucene 索引机制

    3. 工具支持:Lucene提供了丰富的工具和API,如Luke工具可以查看索引结构,Solr和Elasticsearch则是基于Lucene的全文搜索引擎服务,提供了更高级的功能和服务。 综上,深入理解Lucene的索引机制有助于优化搜索性能...

    Lucene5学习之增量索引(Zoie)

    总结起来,Lucene5学习之增量索引(Zoie)涉及到的关键技术点包括: 1. 基于Lucene的增量索引解决方案:Zoie系统。 2. 主从复制架构:Index Provider和Index User的角色。 3. 数据变更追踪:通过变更日志实现增量索引...

    luence4.6例子

    - 倒排索引:Term类表示一个词项,Term Frequency-Inverted Index (TF-IDF)是Lucene的核心数据结构,用于存储每个词项在哪些文档中出现以及出现次数。 2. **查询处理**: - 查询解析:QueryParser将用户输入的...

    基于Lucene和HDFS的PB级数据索引、搜索、存储系统.zip

    《基于Lucene和HDFS的PB级数据索引、搜索、存储系统》 在当今大数据时代,处理PB级别的数据已经成为常态。为了有效地管理和利用这些海量数据,我们需要强大的数据索引、搜索和存储解决方案。这里我们将深入探讨一个...

    Lucene 索引的简单使用

    - **索引(Index)**:索引是Lucene处理数据的核心,它将文本数据转换为可供快速搜索的结构。 - **分词器(Tokenizer)**:分词器将输入的文本分解为一系列的词语,这是建立索引的第一步。 - **分析器(Analyzer)...

    Lucene之删除索引

    Lucene的索引删除过程并不像传统的文件系统删除那么简单,它涉及到对倒排索引结构的修改。 1. **删除文档**:在Lucene中,删除操作并不是真正地从磁盘上移除文档,而是通过添加一个删除标记到索引中。当你调用`...

    Lucene5学习之多线程创建索引

    《Lucene5学习之多线程创建索引》 在深入了解Lucene5的多线程索引创建之前,我们先来了解一下Lucene的基本概念。Lucene是一个高性能、全文本搜索库,由Apache软件基金会开发。它提供了强大的文本分析、索引和搜索...

Global site tag (gtag.js) - Google Analytics