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

Lucene开源搜索引擎的索引目录结构

阅读更多
Lucene索引结构可以分为索引、索引段、索引文档、索引域和索引项几个不同层次。lucene每个索引的结构由一个或者多个段组成,每个段包含一个或多个文档,每个文档管理了一个或者多个域,每个域由一个或多个索引项组成,每个索引项是一个索引数据

index->segment->document->field->term

在使用过程中,有两种结构可供选择,一种是多文件索引结构,一种是复合索引结构。下面分别描述一下两种索引文件的作用。
一、多文件索引结构
使用一系列索引文件分别存储索引,分散管理数据的索引存储格式。
----------//todo 显示多文件索引列表
IndexWriter textIndex = new IndexWriter(Dest_Index_Path,TextAnalyzer,true);
textIndex.useCompoundFile(true);//默认值是true
1)segments_*文件描述一组索引的参数,使用文件头固定格式描述后面的内容,包括每个独立新建索引的大小、属性等
2)fnm文件是索引域描述文件,一个独立的索引(perIndex)叫做一个索引段(Segment),一个fnm文件描述了本索引的文件数、各个域的属性编号
3)fdx文件是文档域值索引文件,采用定长方式存储,根据docid排序可直接定位,用来记录每个文档的stored fields值的存储位置(文件偏移)
4)tis文件是存储每个term在文档中的分布信息,如文档每个含term文件出现次数记录的偏移和位置记录的偏移排列顺序。先按Field名字字典排序,再每个Field按Term字典排序
5)tii文件 是tis文件的索引和精简,排列格式是一样的,但不含有每个term属性的信息。这个文件完全可以读入内存。
6)frq文件是tis文件的扩展。记录每个term在每个包含文档中的具体出现的频率
7)prx文件也是tis文件 的延伸,记录每个term在每个文档偏移信息。这个文件省略了docid,必须配合frq文件使用
8)tvx,tvd,tvf用来索引和保持每个文档的向量化字段的信息

二、复合索引结构
是把索引相关的一系列数据结构组织到少数几个文件中进行管理的索引存储模式。
1)segments_*文件描述一组索引的参数,使用文件头固定格式描述后面的内容,包括每个独立新建索引的大小、属性
2)segment.gen文件存储索引创建参数
3)cfs文件存储实际的索引数据段,不同子索引在内部按照一定格式存储,仍然可以区分,直到索引优化压缩操作发生时。

复合索引可以和多文件索引综合使用,每一个独立的字索引或者索引段使用当时设定的索引模式。在后续的优化压缩时,仍然可以处理。
分享到:
评论

相关推荐

    基于Lucene的搜索引擎的研究与应用

    文章主要研究和应用了基于Lucene的搜索引擎,其特点是利用开源网络爬虫工具抓取互联网信息,并通过Lucene的API对特定信息进行索引和搜索。下面详细介绍相关知识点。 1. Lucene基础 Lucene是由Apache软件基金会提供...

    基于Lucene的搜索引擎

    **基于Lucene的搜索引擎** Lucene是一个开源的全文检索库,由Apache软件基金会开发并维护。它是Java语言实现的,可以被集成到各种应用程序中,为开发者提供了强大的文本搜索功能。在本项目中,我们看到的是一个专门...

    基于LUCENE的搜索引擎的设计与实现源代码

    LUCENE是一款开源的Java库,它为开发者提供了构建搜索引擎所需的核心功能,包括索引创建、文本分析、查询解析以及结果排序等。 一、LUCENE基础知识 LUCENE的核心概念主要包括文档(Document)、字段(Field)、...

    基于lucene的搜索引擎regain安装版

    **基于Lucene的搜索引擎Regain安装指南** Regain是一个基于Apache Lucene的全文搜索引擎,它提供了高级的搜索功能,能够帮助用户快速、准确地在大量数据中查找所需信息。Lucene是Java语言实现的一个开源信息检索库...

    开源搜索框架lucene介绍

    ### 开源搜索框架Lucene介绍 #### 一、Lucene简介 Lucene是一款非常优秀且成熟的开源全文索引检索工具包,它完全采用Java语言编写,由Doug Cutting于1999年创建,并于2001年10月捐赠给了Apache基金会,成为Apache...

    LUCENE搜索引擎基本工作原理

    Lucene是一个开源的全文搜索引擎库,被广泛应用于构建复杂的搜索引擎系统。它的设计目标是高效、灵活且可扩展。理解Lucene的工作原理有助于开发人员更好地利用这一强大的工具。 **一、全文搜索引擎** 全文搜索引擎...

    基于lucene技术的增量索引

    在信息技术领域,全文搜索引擎是处理大量数据查询的关键工具。Apache Lucene是一个开源的全文检索库,被广泛应用于构建高效、可扩展的搜索功能。本文将深入探讨如何利用Lucene实现增量索引,这是一种在数据库或文件...

    lucene_heritrix 搜索引擎

    它与Lucene和Heritrix的关系可能在于,FMPP可以用来自动化生成配置文件或者索引展示页面,这样在构建搜索引擎时可以提高效率和一致性。 总结一下,Lucene和Heritrix是构建搜索引擎的关键组件。Lucene负责高效地索引...

    (C#开源搜索引擎).rar

    这个C#开源搜索引擎项目利用了C#语言的灵活性和高性能,结合Apache Lucene.Net进行全文检索,通过log4net进行日志管理,使用ANTLR处理语言结构,StringTemplate生成动态输出,以及自定义的类库(如ShootSearch.*)来...

    基于Lucene的中型搜索引擎(C#)

    总的来说,基于Lucene的中型搜索引擎(C#)结合了开源的全文检索库和C#语言的优势,为企业或个人开发自定义搜索引擎提供了一种高效且灵活的解决方案。通过深入理解Lucene的原理和ShootSearch的优化策略,开发者可以...

    基于java的Lucene全文搜索引擎资源简单实例下载

    **基于Java的Lucene全文搜索引擎资源简单实例** Lucene是一个由Apache软件基金会开发的开源全文检索库,它为Java开发者提供了强大的文本搜索功能。Lucene是高性能、可扩展的信息检索库,可以集成到各种Java应用中,...

    lucene 对 xml建立索引

    - Lucene是一个开源的全文搜索引擎库,能够帮助开发者构建应用程序内的搜索功能。 - Lucene的核心能力在于文档索引和查询,它提供了强大的API来实现高效的文档检索。 2. **XML简介** - XML(Extensible Markup ...

    ssd.rar_lucene_搜索 lucene_搜索引擎_文本搜索

    Lucene是一个高性能、全文检索库,由Apache软件基金会开发并维护,是Java编程语言中广泛使用的开源搜索引擎框架。它为开发者提供了在应用程序中实现全文索引和搜索功能的基础工具。Lucene的核心功能包括文本分析、...

Global site tag (gtag.js) - Google Analytics