热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Lucene4.3进阶开发之亢龙有悔(九)

2019独角兽企业重金招聘Python工程师标准上篇文章,散仙介绍了.fnm的索引文件格式的具体结构及数据类型,那么本篇呢,将介绍另

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

上篇文章,散仙介绍了.fnm的索引文件格式的具体结构及数据类型,那么本篇呢,将介绍另外两种格式.fdx和fdt。 

Stored Field values,代表着存储字段的具体的值,对于在索引里的每一个文档(Document),本质上都是存储着一系列的基于属性名和值的K-V段,其实也就是字段的名和字段的值,这一点和大多数NOSQL的存储格式是非常相似的,都是非常灵活松散的。 

存储的字段一般都是关于这个文档的辅助信息,例如:它的标题,URL,或一个标识符是否访问数据库,另外需要在搜索时并取出值的字段,是必须存储的,如果这个字段不是必须存储的,但是检索时却需要被检索,那么在索引时,可以设置索引,不存储,因为索引的大小会影响检索的效率,所以尽量不要浪费索引存储的空间。 

存储的字段(Stored Fields)有2个核心的文件。 

1,索引字段的数据在.fdx的文件里。 

索引通常用于检索特定的文档在字段里,索引里包含一个固定长度的数据使这个文件更加容易的支持随机访问,文档的位置存储在8位的文件里。 

每个索引文档都包含一个它对应的存储数据的指针,以便于能够更加快速检索。 

FieldIndex (.fdx) --> , SegSize 

Header --> CodecHeader 

FieldValuesPosition --> Uint64 

2,字段存储的数据在.fdt的文件里 

每个存储的字段都包含如下信息: 

FieldData (.fdt) --> , SegSize 

Header --> CodecHeader 

DocFieldData --> FieldCount, FieldCount 

FieldCount --> VInt 

FieldNum --> VInt 

Bits --> Byte 

(1)第一个bit位被保留 

(2)第二个是一个包含着二进制数据的字段 

(3)第三个bit位被保留 

&#xff08;4&#xff09;第四至第六位&#xff0c;(mask: 0x7<<3)定义一个数字类型的字段 

     如果没有数字字段存储&#xff0c;所有的bit位将被清除 

     1<<3: 值是一个int类型 

     2<<3: 值是一个Long类型 

     3<<3: 值是一个Float类型 

     4<<3: 值是一个Double类型 

Value 存储的类型可以是字符串&#xff0c;二进制类型&#xff0c;整形&#xff0c;长整型&#xff08;依赖bit&#xff09; 

BinaryValue   字节类型的存储 

ValueSize     VInt&#xff0c;变长格式的整形。



转:https://my.oschina.net/heroShane/blog/201966



推荐阅读
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 在Oracle11g以前版本中的的DataGuard物理备用数据库,可以以只读的方式打开数据库,但此时MediaRecovery利用日志进行数据同步的过 ... [详细]
  • 本文分析了Wince程序内存和存储内存的分布及作用。Wince内存包括系统内存、对象存储和程序内存,其中系统内存占用了一部分SDRAM,而剩下的30M为程序内存和存储内存。对象存储是嵌入式wince操作系统中的一个新概念,常用于消费电子设备中。此外,文章还介绍了主电源和后备电池在操作系统中的作用。 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • C++字符字符串处理及字符集编码方案
    本文介绍了C++中字符字符串处理的问题,并详细解释了字符集编码方案,包括UNICODE、Windows apps采用的UTF-16编码、ASCII、SBCS和DBCS编码方案。同时说明了ANSI C标准和Windows中的字符/字符串数据类型实现。文章还提到了在编译时需要定义UNICODE宏以支持unicode编码,否则将使用windows code page编译。最后,给出了相关的头文件和数据类型定义。 ... [详细]
  • 怎么在PHP项目中实现一个HTTP断点续传功能发布时间:2021-01-1916:26:06来源:亿速云阅读:96作者:Le ... [详细]
  • 合并列值-合并为一列问题需求:createtabletab(Aint,Bint,Cint)inserttabselect1,2,3unionallsel ... [详细]
  • 如何在php文件中添加图片?
    本文详细解答了如何在php文件中添加图片的问题,包括插入图片的代码、使用PHPword在载入模板中插入图片的方法,以及使用gd库生成不同类型的图像文件的示例。同时还介绍了如何生成一个正方形文件的步骤。希望对大家有所帮助。 ... [详细]
  • 本文介绍了使用数据库管理员用户执行onstat -l命令来监控GBase8s数据库的物理日志和逻辑日志的使用情况,并强调了对已使用的逻辑日志是否及时备份的重要性。同时提供了监控方法和注意事项。 ... [详细]
  • 超级简单加解密工具的方案和功能
    本文介绍了一个超级简单的加解密工具的方案和功能。该工具可以读取文件头,并根据特定长度进行加密,加密后将加密部分写入源文件。同时,该工具也支持解密操作。加密和解密过程是可逆的。本文还提到了一些相关的功能和使用方法,并给出了Python代码示例。 ... [详细]
  • .NetCoreWebApi生成Swagger接口文档的使用方法
    本文介绍了使用.NetCoreWebApi生成Swagger接口文档的方法,并详细说明了Swagger的定义和功能。通过使用Swagger,可以实现接口和服务的可视化,方便测试人员进行接口测试。同时,还提供了Github链接和具体的步骤,包括创建WebApi工程、引入swagger的包、配置XML文档文件和跨域处理。通过本文,读者可以了解到如何使用Swagger生成接口文档,并加深对Swagger的理解。 ... [详细]
  • Oracle Database 10g许可授予信息及高级功能详解
    本文介绍了Oracle Database 10g许可授予信息及其中的高级功能,包括数据库优化数据包、SQL访问指导、SQL优化指导、SQL优化集和重组对象。同时提供了详细说明,指导用户在Oracle Database 10g中如何使用这些功能。 ... [详细]
  • Android工程师面试准备及设计模式使用场景
    本文介绍了Android工程师面试准备的经验,包括面试流程和重点准备内容。同时,还介绍了建造者模式的使用场景,以及在Android开发中的具体应用。 ... [详细]
  • 本文讨论了在使用Git进行版本控制时,如何提供类似CVS中自动增加版本号的功能。作者介绍了Git中的其他版本表示方式,如git describe命令,并提供了使用这些表示方式来确定文件更新情况的示例。此外,文章还介绍了启用$Id:$功能的方法,并讨论了一些开发者在使用Git时的需求和使用场景。 ... [详细]
author-avatar
黑小羊Mark
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有