知识大全 定义Lucene 1.3 用到的索引文件格式

Posted 索引

篇首语:愿你成为自己喜欢的模样,不抱怨,不将就,有自由,有光芒。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 定义Lucene 1.3 用到的索引文件格式相关的知识,希望对你有一定的参考价值。

定义Lucene 1.3 用到的索引文件格式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  Jakarta Lucene是用Java写成的 同时有很多团体正在默默的用其他的程序语言来改写它 如果这些新的版本想和Jakarta Lucene兼容 就需要一个与具体语言无关的Lucene索引文件格式 本文正是试图提供一个完整的与语言无关的Jakarta Lucene 索引文件格式的规格定义     随着Lucene不断发展 本文也应该更新 不同语言写成的Lucene实现版本应当尽力遵守文件格式 也必须产生本文的新版本     本文同时提供兼容性批注 描述文件格式上与前一版本不同的地方       定义   Lucene中最基础的概念是索引(index) 文档(document. 域(field)和项(term)     索引包含了一个文档的序列     ·  文档是一些域的序列     ·  域是一些项的序列     ·  项就是一个字串     存在于不同域中的同一个字串被认为是不同的项 因此项实际是用一对字串表示的 第一个字串是域名 第二个是域中的字串      倒排索引   为了使得基于项的搜索更有效率 索引中项是静态存储的 Lucene的索引属于索引方式中的倒排索引 因为对于一个项这种索引可以列出包含它的文档 这刚好是文档与项自然联系的倒置       域的类型   Lucene中 域的文本可能以逐字的非倒排的方式存储在索引中 而倒排过的域称为被索引过了 域也可能同时被存储和被索引     域的文本可能被分解许多项目而被索引 或者就被用作一个项目而被索引 大多数的域是被分解过的 但是有些时候某些标识符域被当做一个项目索引是很有用的       段(Segment)   Lucene索引可能由多个子索引组成 这些子索引成为段 每一段都是完整独立的索引 能被搜索 索引是这样作成的        为新加入的文档创建新段        合并已经存在的段     搜索时需要涉及到多个段和/或者多个索引 每一个索引又可能由一些段组成      文档号(document.nbspNumber)   内部的来说 Lucene用一个整形(interger)的文档号来指示文档 第一个被加入到索引中的文档就是 号 顺序加入的文档将得到一个由前一个号码递增而来的号码     注意文档号是可能改变的 所以在Lucene外部存储这些号码时必须小心 特别的 号码的改变的情况如下     ·  只有段内的号码是相同的 不同段之间不同 因而在一个比段广泛的上下文环境中使用这些号码时 就必须改变它们 标准的技术是根据每一段号码多少为每一段分配一个段号 将段内文档号转换到段外时 加上段号 将某段外的文档号转换到段内时 根据每段中可能的转换后号码范围来判断文档属于那一段 并减调这一段的段号 例如有两个含 个文档的段合并 那么第一段的段号就是 第二段段号 第二段中的第三个文档 在段外的号码就是     ·  文档删除后 连续的号码就出现了间断 这可以通过合并索引来解决 段合并时删除的文档相应也删掉了 新合并而成的段并没有号码间断       绪论  索引段维护着以下的信息     ·  域集合 包含了索引中用到的所有的域     ·  域值存储表 每一个文档都含有一个 属性-值 对的列表 属性即为域名 这个列表用来存储文档的一些附加信息 如标题 url或者访问数据库的一个ID 在搜索时存储域的集合可以被返回 这个表以文档号标识     ·  项字典 这个字典含有所有文档的所有域中使用过的的项 同时含有使用过它的文档的文档号 以及指向使用频数信息和位置信息的指针     ·  项频数信息 对于项字典中的每个项 这些信息包含含有这个项的文档的总数 以及每个文档中使用的次数     ·  项位置信息 对于项字典中的每个项 都存有在每个文档中出现的各个位置     ·  Normalization factors For each field in each document. a value is stored that is multiplied into the score for hits on that field 标准化因子 对于文档中的每一个域 存有一个值 用来以后乘以这个这个域的命中数(hits)     ·  被删除的文档信息 这是一个可选文件 用来表明那些文档已经删除了     接下来的各部分部分详细描述这些信息       文件的命名(File Naming)  同属于一个段的文件拥有相同的文件名 不同的扩展名 扩展名由以下讨论的各种文件格式确定     一般来说 一个索引存放一个目录 其所有段都存放在这个目录里 尽管我们不要求您这样做       基本数据类型(Primitive Types)  Byte      最基本的数据类型就是字节(byte 位) 文件就是按字节顺序访问的 其它的一些数据类型也定义为字节的序列 文件的格式具有字节意义上的独立性      UInt       位无符号整数 由四个字节组成 高位优先     UInt > <Byte>      Uint       位无符号整数 由八字节组成 高位优先     UInt > <Byte>      VInt      可变长的正整数类型 每字节的最高位表明还剩多少字节 每字节的低七位表明整数的值 因此单字节的值从 到 两字节值从 到 等等     VInt 编码示例  value    First byte    Second byte    Third byte                                                                                                                             这种编码提供了一种在高效率解码时压缩数据的方法      Chars      Lucene输出UNICODE字符序列 使用标准UTF 编码      String      Lucene输出由VINT和字符串组成的字串 VINT表示字串长 字符串紧接其后     String > VInt Chars       索引包含的文件(Per Index Files)  这部分介绍每个索引包含的文件     Segments文件    索引中活动的段存储在Segments文件中 每个索引只能含有一个这样的文件 名为 segments 这个文件依次列出每个段的名字和每个段的大小     Segments > SegCount <SegName SegSize>SegCount     SegCount SegSize > UInt     SegName > String     SegName表示该segment的名字 同时作为索引其他文件的前缀     SegSize是段索引中含有的文档数      Lock文件  有一些文件用来表示另一个进程在使用索引     ·  如果存在 mit lock 文件 表示有进程在写 segments 文件和删除无用的段索引文件 或者表示有进程在读 segments 文件和打开某些段的文件 在一个进程在读取 segments 文件段信息后 还没来得及打开所有该段的文件前 这个Lock文件可以防止另一个进程删除这些文件     ·  如果存在 index lock 文件 表示有进程在向索引中加入文档 或者是从索引中删除文档 这个文件防止很多文件同时修改一个索引      Deleteable文件  名为 deletetable 的文件包含了索引不再使用的文件的名字 这些文件可能并没有被实际的删除 这种情况只存在与Win 平台下 因为Win 下文件仍打开时并不能删除     Deleteable > DelableCount <DelableName>DelableCount     DelableCount > UInt     DelableName > String       段包含的文件(Per Segment Files)  剩下的文件是每段中包含的文件 因此由后缀来区分     域(Field)     域集合信息(Field Info)     所有域名都存储在这个文件的域集合信息中 这个文件以后缀 fnm结尾     FieldInfos ( fnm) > FieldsCount <FieldName FieldBits>FieldsCount     FieldsCount > VInt     FieldName > String     FieldBits > Byte     目前情况下 FieldBits只有使用低位 对于已索引的域值为 对未索引的域值为     文件中的域根据它们的次序编号 因此域 是文件中的第一个域 域 是接下来的 等等 这个和文档号的编号方式相同     域值存储表(Stored Fields)    域值存储表使用两个文件表示        域索引( fdx文件)     如下 对于每个文档这个文件包含指向域值的指针     FieldIndex ( fdx) > <FieldvaluesPosition>SegSize     FieldvaluesPosition > Uint     FieldvaluesPosition指示的是某一文档的某域的域值在域值文件中的位置 因为域值文件含有定长的数据信息 因而很容易随机访问 在域值文件中 文档n的域值信息就存在n* cha138/Article/program/Java/Javascript/201311/25449

相关参考

知识大全 Lucene在多个索引上进行搜索

Lucene在多个索引上进行搜索  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  代码如下  vi

知识大全 如何定义404错误页面

方法如下创建一个HTML文件为您的页这可能是任何你想这可能是只是一个空白页也可以是您的布局其中包括字它这一切取决于您的意愿保存该文件在任何文件格式您想要(HTML格式PHP的等;)并把它上传到您的网页

知识大全 文件 - 索引文件(一)

  索引文件构成  索引文件  索引文件由主文件和索引表构成  ①主文件文件本身  ②索引表在文件本身外建立的一张表它指明逻辑记录和物理记录之间的一一对应关系  索引表组成  索引表由若干索引项组成一

知识大全 第10章文件习题练习

常见的文件组织方式有哪几种?各有何特点?文件上的操作有哪几种?如何评价文件组织的效率?索引文件散列文件和多关键字文件适合存放在磁带上吗?为什么?设有一个职工文件其记录格式为(职工号姓名性别职务年龄工资

知识大全 文件 - 索引文件(二)

  索引文件的操作  检索操作  检索分两步进行  ①将外存上含有索引区的页块送人内存查找所需记录的物理地址  ②将含有该记录的页块送人内存  注意  ①索引表不大时索引表可一次读入内存在索引文件中检

知识大全 png格式图片在ps里操作不了,显示索引怎么回事

png格式图片在ps里操作不了,显示索引怎么回事在菜单“图像“中的”模式“调为RGB颜色,然后就可以编辑了。还有一个方法就是你先打开一张背景图,再把这个png图片拖进你背景图所在图层也可以打开编辑求采

知识大全 文件 - 索引顺序文件 - VSAM文件 (二)

文件-索引顺序文件-VSAM文件(二)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  VSAM文

知识大全 文件 - 索引顺序文件 - ISAM文件(一)

文件-索引顺序文件-ISAM文件(一)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ISAM文

知识大全 文件 - 索引顺序文件 - ISAM文件(二)

文件-索引顺序文件-ISAM文件(二)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ISAM文

知识大全 文件 - 索引顺序文件 - VSAM文件 (一)

文件-索引顺序文件-VSAM文件(一)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  VSAM文