`
- 浏览:
2181095 次
- 性别:
- 来自:
北京
-
转载请务必注明,原创地址,谢谢配合!
http://qindongliang1922.iteye.com/
DocValues 对于一些存储的值,通常我们可以取得内容,通过docid,有时候为了实现更快的访问,我们可以将其存储的值通过DocValues来把它加载到主存中,存储的值用于在检索时搜索结果汇总,而docvalues的值则对于一些评分因素是非常有用的。
DocValues的文件格式.dv.cfs和.dv.cfe。
信息存在一个复合文件中
<segment>_<fieldNumber>.dat: 存储数据的值
<segment>_<fieldNumber>.idx: 为dat文件建立的索引
DocValues有许多种不同的编码方式,从文件名的角度来说,所有的类型存储他们的值在一个复合格式的dat文件里,在dereferenced/sorted类型的情况下,.dat实际上只包含一个唯一的值,还有一个额外的idx索引文件来存储引用这些值的指针
Fixed(固定长度)
Var (变长)
DocValues存储的格式如下:
VAR_INTS .dat --> Header, PackedType, MinValue, DefaultValue, PackedStream
FIXED_INTS_8 .dat --> Header, ValueSize, Bytemaxdoc
FIXED_INTS_16 .dat --> Header, ValueSize, Shortmaxdoc
FIXED_INTS_32 .dat --> Header, ValueSize, Int32maxdoc
FIXED_INTS_64 .dat --> Header, ValueSize, Int64maxdoc
FLOAT_32 .dat --> Header, ValueSize, Float32maxdoc
FLOAT_64 .dat --> Header, ValueSize, Float64maxdoc
BYTES_FIXED_STRAIGHT .dat --> Header, ValueSize, (Byte * ValueSize)maxdoc
BYTES_VAR_STRAIGHT .idx --> Header, TotalBytes, Addresses
BYTES_VAR_STRAIGHT .dat --> Header, (Byte * variable ValueSize)maxdoc
BYTES_FIXED_DEREF .idx --> Header, NumValues, Addresses
BYTES_FIXED_DEREF .dat --> Header, ValueSize, (Byte * ValueSize)NumValues
BYTES_VAR_DEREF .idx --> Header, TotalVarBytes, Addresses
BYTES_VAR_DEREF .dat --> Header, (LengthPrefix + Byte * variable ValueSize)NumValues
BYTES_FIXED_SORTED .idx --> Header, NumValues, Ordinals
BYTES_FIXED_SORTED .dat --> Header, ValueSize, (Byte * ValueSize)NumValues
BYTES_VAR_SORTED .idx --> Header, TotalVarBytes, Addresses, Ordinals
BYTES_VAR_SORTED .dat --> Header, (Byte * variable ValueSize)NumValues
数据类型:
Header --> CodecHeader
PackedType --> Byte
MaxAddress, MinValue, DefaultValue --> Int64
PackedStream, Addresses, Ordinals --> PackedInts
ValueSize, NumValues --> Int32
Float32 --> 32-bit float encoded with Float.floatToRawIntBits(float) then written as Int32
Float64 --> 64-bit float encoded with Double.doubleToRawLongBits(double) then written as Int64
TotalBytes --> VLong
TotalVarBytes --> Int64
LengthPrefix --> Length of the data value as VInt (maximum of 2 bytes)
(1)PackedType 是0的时候,代表着是被压缩过的,当写入的流是一个64位的int时,这个值为1
(2)地址存储指针的实际字节位置和docid有关,在VAR_STRAIGHT的情况下,每个值可以有不同的长度,所以确定长度来自docid+1。
(3)在索引的时候,term id默认是有序的,在FIXED_SORTED的情况下,地址被存储在dat文件里,可以通过Header+ValueSize+(ordinal*ValueSize)计算;在VAR_SORTED的情况下,可以间接的通过docid -> ordinal -> address计算,所以决定长度的是ord+1的地址。
(4)BYTES_VAR_STRAIGHT BYTES_VAR_STRAIGHT相比其他的直接格式,通过idx文件,来提升性能。
限制:
二进制的doc values的值被限制在MAX_BINARY_FIELD_LENGTH。
.del文件用来标记在索引中被删除的记录,它仅仅出现在当一个段出现删除操作时,该文件才会生成,这个文件也维护外部的复合段文件
Deletions (.del) --> Format,Header,ByteCount,BitCount, Bits | DGaps (depending on Format)
Format,ByteSize,BitCount --> Uint32
Bits --> <Byte> ByteCount
DGaps --> <DGap,NonOnesByte> NonzeroBytesCount
DGap --> VInt
NonOnesByte --> Byte
Header --> CodecHeader
Format is 1: indicates cleared DGaps.
ByteCount indicates the number of bytes in Bits. It is typically (SegSize/8)+1.
BitCount indicates the number of bits that are currently set in Bits.
Bits contains one bit for each document indexed. When the bit corresponding to a document number is cleared, that document is marked as deleted. Bit ordering is from least to most significant. Thus, if Bits contains two bytes, 0x00 and 0x02, then document 9 is marked as alive (not deleted).
DGaps represents sparse bit-vectors more efficiently than Bits. It is made of DGaps on indexes of nonOnes bytes in Bits, and the nonOnes bytes themselves. The number of nonOnes bytes in Bits (NonOnesBytesCount) is not stored.
For example, if there are 8000 bits and only bits 10,12,32 are cleared, DGaps would be used:
(VInt) 1 , (byte) 20 , (VInt) 3 , (Byte) 1
转载请务必注明,原创地址,谢谢配合!
http://qindongliang1922.iteye.com/
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
在"lucene4.3 按坐标距离排序"这个主题中,我们将探讨如何在Lucene 4.3版本中利用地理位置信息进行文档排序,特别是在处理地理空间搜索时的应用。 首先,Lucene 4.3引入了对地理空间搜索的支持,这允许我们根据地理...
Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。Lucene是一套用于全文检索和搜寻的开源程式库,由Apache软件基金会...
lucene4.3增删改查的的一个工具类,对新手来说是一份不可多得的入门资料。
全文检索lucene 4.3 所用到的3个jar包,包含lucene-queryparser-4.3.0.jar、 lucene-core-4.3.0.jar、lucene-analyzers-common-4.3.0.jar。
《Lucene高级搜索进阶项目_04》 在深入探讨Lucene的高级搜索进阶项目时,我们首先需要理解Lucene的核心概念及其在信息检索中的应用。Lucene是一个高性能、全文本搜索库,它提供了丰富的搜索功能,包括布尔运算、...
lucene4.3源代码 censed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information ...
本课程由浅入深的介绍了Lucene4的发展历史,开发环境搭建,分析lucene4的中文分词原理,深入讲了lucenne4的系统架构,分析lucene4索引实现原理及性能优化,了解关于lucene4的搜索算法优化及利用java结合lucene4实现...
Lucene是一个开源的全文搜索引擎库,由Apache软件基金会开发并维护。在Java编程环境中,它为开发者提供了强大的文本检索功能,使得在海量数据中快速查找相关信息变得简单易行。本篇文章将详细探讨Lucene 4.3.1版本的...
共13页07.Lucene搜索实战1 共4页08.Lucene搜索实战2 共5页09.Lucene搜索深入实战1 共5页10.Lucene搜索深入实战2 共11页11....Lucene高级进阶1 共23页16.Lucene高级进阶2 共4页17.Lucene高级进阶3 共4页18.Lucene排序...
在本课程中,我们主要探讨了Lucene 4.x版本的高级进阶应用,特别是针对大规模文档搜索引擎的构建。Lucene作为一个开源全文搜索引擎库,它提供了高效、灵活的索引和搜索功能,是构建高性能搜索系统的基石。在这个部分...
结合笔者的实际开发经验,总结了一些新的开发技巧和开发思路,并对网上流传的一些错误...本书既可为零起点的Lucene初学者提供系统全面的学习指导,也可帮助有相关经验的开发者解决在开发过程中遇到的一些难题和疑惑。
1.XunTa是在lucene4.3上创建的通过“知识点”来找人的搜人引擎。 输入一个关键词(或组合),XunTa返回一个排名列表,排在前面的人是与该关键词(组合)最相关的“达人”。 可访问 http://www.xunta.so立即体验...
在高级进阶部分,我们将重点探讨Lucene在索引、搜索、排序、过滤以及分词器等方面的高级用法,旨在帮助开发者掌握Lucene的精髓,打造高效、精确的搜索体验。 1. **Document与索引更新**: 在Lucene中,`Document`...
【Lucene4.X实战类baidu搜索的大型文档海量搜索系统】课程主要涵盖了Lucene搜索引擎的各个方面,包括基础和高级进阶。以下是课程的主要知识点: 1. **Lucene入门与系统架构**:介绍Lucene的基本概念,以及其系统...
Lucene是Java开发的开源库,它提供了文本分析、索引和搜索功能,使得开发者能够轻松地在应用程序中实现复杂的搜索功能。这个项目的重点在于提升对Lucene高级特性和优化技巧的理解。 首先,我们要了解Lucene的核心...
共13页07.Lucene搜索实战1 共4页08.Lucene搜索实战2 共5页09.Lucene搜索深入实战1 共5页10.Lucene搜索深入实战2 共11页11....Lucene高级进阶1 共23页16.Lucene高级进阶2 共4页17.Lucene高级进阶3 共4页18.Lucene排序...
共13页07.Lucene搜索实战1 共4页08.Lucene搜索实战2 共5页09.Lucene搜索深入实战1 共5页10.Lucene搜索深入实战2 共11页11....Lucene高级进阶1 共23页16.Lucene高级进阶2 共4页17.Lucene高级进阶3 共4页18.Lucene排序...
共13页07.Lucene搜索实战1 共4页08.Lucene搜索实战2 共5页09.Lucene搜索深入实战1 共5页10.Lucene搜索深入实战2 共11页11....Lucene高级进阶1 共23页16.Lucene高级进阶2 共4页17.Lucene高级进阶3 共4页18.Lucene排序...
共13页07.Lucene搜索实战1 共4页08.Lucene搜索实战2 共5页09.Lucene搜索深入实战1 共5页10.Lucene搜索深入实战2 共11页11....Lucene高级进阶1 共23页16.Lucene高级进阶2 共4页17.Lucene高级进阶3 共4页18.Lucene排序...
共13页07.Lucene搜索实战1 共4页08.Lucene搜索实战2 共5页09.Lucene搜索深入实战1 共5页10.Lucene搜索深入实战2 共11页11....Lucene高级进阶1 共23页16.Lucene高级进阶2 共4页17.Lucene高级进阶3 共4页18.Lucene排序...