lucene索引文件格式-Field文件

Lucene40FieldInfosFormat

字段名存储在字段信息文件中,后缀为.fnm。

文件

FieldInfos (.fnm) --> Header,FieldsCount, <FieldName,FieldNumber, FieldBits,DocValuesBits,Attributes> FieldsCount

数据类型:
  • Header --> CodecHeader
  • FieldsCount --> VInt
  • FieldName --> String
  • FieldBits, DocValuesBits --> Byte
  • FieldNumber --> VInt
  • Attributes --> Map<String,String>
文件描述:
  • FieldsCount: 此文件中的字段数.
  • FieldName: 作为UTF-8字符串的字段名称.
  • FieldNumber: 字段的编号。请注意,与先前版本的Lucene不同,字段不是由文件中的顺序隐式编号,而是显式编号
  • FieldBits: 包含字段选项的字节.
    • 低位是针对索引字段的位,对于非索引字段是零
    • 对于存储有term向量的字段,第二个最低位是1,对于没有term向量的字段,第二个最低位是0
    • 如果设置了第三个最低位(0x4),则除了位置之外,还会将偏移存储到posting列表中。
    • 第四位没有被使用
    • 如果设置了第五个最低位(0x10),则索引字段将省略norms
    • 如果设置了第六个最低位(0x20),则为索引字段存储payload
    • 如果设置了第七个最低位(0x40),则索引字段省略了term频率和位置
    • 如果设置了第八个最低位(0x80),则索引字段的位置被省略
  • DocValuesBits: 包含每个文档值类型的字节,记录为两个四位整数的类型,高位表示 norms选项,低位表示 DocValues选项,每个四位整数可以这样解码:
    • 0: 此字段没有DocValues
    • 1: 可变宽度有符号整数(Type#VAR_INTS VAR_INTS)
    • 2: 32位浮点值(Type#FLOAT_32 FLOAT_32)
    • 3: 64位浮点值(Type#FLOAT_64 FLOAT_64)
    • 4: 固定长度的字节数组值(Type#BYTES_FIXED_STRAIGHT BYTES_FIXED_STRAIGHT)
    • 5: 固定长度取消引用的字节数组值(Type#BYTES_FIXED_DEREF BYTES_FIXED_DEREF)
    • 6: 可变长度字节数组值(Type#BYTES_VAR_STRAIGHT BYTES_VAR_STRAIGHT)
    • 7: 可变长度的取消引用字节数组值。(Type#BYTES_VAR_DEREF BYTES_VAR_DEREF)
    • 8: 16位有符号整数(Type#FIXED_INTS_16 FIXED_INTS_16)
    • 9: 32位有符号整数(Type#FIXED_INTS_32 FIXED_INTS_32)
    • 10: 64位有符号整数(Type#FIXED_INTS_64 FIXED_INTS_64)
    • 11: 8位有符号整数(Type#FIXED_INTS_8 FIXED_INTS_8)
    • 12: 固定长度排序的字节数组值(Type#BYTES_FIXED_SORTED BYTES_FIXED_SORTED)
    • 13: 可变长度排序的字节数组值(Type#BYTES_VAR_SORTED BYTES_VAR_SORTED)
  • Attributes: 编解码器 - 私有属性的键值映射

Lucene40StoredFieldsFormat

存储的字段由两个文件表示:

1.字段索引或者 .fdx 文件.

这用于查找特定文档字段的字段数据文件中的位置,因为它包含固定长度的数据,所以很容易地随机访问该文件。文档n的字段数据的位置在此文件中Uint64值为 n * 8。

对于每个文档,它包含指向其字段数据的指针,如下所示:

  • FieldIndex (.fdx) --> <Header>, <FieldValuesPosition> SegSize
  • Header --> CodecHeader
  • FieldValuesPosition --> Uint64

2.字段数据或者 .fdt 文件.

它包含每个文档的存储字段,如下所示:

  • FieldData (.fdt) --> <Header>, <DocFieldData> SegSize
  • Header --> CodecHeader
  • DocFieldData --> FieldCount, <FieldNum, Bits, Value> FieldCount
  • FieldCount --> VInt
  • FieldNum --> VInt
  • Bits --> Byte
    • 低位保留.
    • 第二位是包含二进制数据的字段的第二位
    • 第三位保留.
    • 第4到第6位(掩码:0x7 << 3)定义数字字段的类型:
      • 如果没有numeric 字段,则清除掩码中的所有位
      • 1<<3: Value是Int
      • 2<<3: Value是Long
      • 3<<3: Value是Float转换的Int (例如 Float.intBitsToFloat(int)
      • 4<<3: Value是Double转换的Long (例如 Double.longBitsToDouble(long)
  • Value --> String | BinaryValue | Int | Long (depending on Bits)
  • BinaryValue --> ValueSize, <Byte>^ValueSize
  • ValueSize --> VInt
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,734评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,931评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,133评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,532评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,585评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,462评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,262评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,153评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,587评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,792评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,919评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,635评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,237评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,855评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,983评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,048评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,864评论 2 354

推荐阅读更多精彩内容