Lucene为了缩减索引信息存储的空间,加快索引访问速度,采用了一些特殊的技巧与规则。
1. 前缀与后缀规则
Lucene在存储索引信息时,是先将信息按照字母顺序排列的,然后再依次对排好序的信息建立索引。而排好序的信息可能是如下的情况:
ab abc abcde abcdefgh
如果我们直接像这样存储,就会浪费很多存储空间,因为很多信息都发生了存储冗余的情况。例如第一个单词ab存储以后,第二个单词的前缀ab再次存储在不同的空间时,就发生了存储冗余,后面相邻的单词之间也会发生相同的情况。最后就导致大量的存储空间浪费!
而Lucene则为我们提出了一种精妙的解决方案,就是采用了“前缀与后缀”规则。它存储的策略就是:当某个词和前一个词有共同的前缀的时候,后面的词仅仅保存前缀在词中的偏移,以及除前缀以外的字符串。
例如对如上排好序的信息在采用前缀后缀规则之前及之后的存储情况如下所示:
2 ab 3 abc 5 abcde 8 abcdefgh
延伸阅读
赞助商广告
随机更新
- javascript事件:javascript捕获窗口关闭事件
- 在Weblogic上配置Hibernate为..
- Fw: Oracle时间格式讨论(转)
- Flash和Asp数据...
- 转载:论J2EE程序员的武功修为
- oracle导出数据库:教你怎样在Oracle数据库中高速导出/导入
- 彻底删除oracle数据库
- sql登录失败:SQL Server 服务由于登录失败而无法成功...
- .net3.5新特性:关于VS 2008和.NET 3.5 Beta2新特性介绍
- 程序员联合开发网:程序员在开发过程中应该了解的..
- oracle应用:ORACLE应用常用傻瓜问题900问
- Windows XP SP2...
- Hibernate配置手册
- 数据库服务器:数据库服务器硬件性能估算示例及问题
- sql性能优化:oracle SQL性能优化(下)
- 如何学好计算机:为什么学好计算机就必须学好...
- 总结一下spring+hibernate
- delphi:用Delphi编写D..
- java中调用ORACLE存储过程
- Macromedia软件系列注册码
- hibernate中update和saveOrUpdate详解
- mysql优化:加速动态网站 MySQL索引分析和优化
- 转] 关于SQLSERVER2000卸载与出现挂..
- javascriptdom:JavaScript学习笔记(2) 使用DOM编写浏览器兼容的Table操作
- iden手机:Hibernate中No row with the given iden..
- wince5.0:wince5.0下编译嵌入式操作系统sysgen阶段出错原因分析
- 图片处理软件:图片处理
- 网上找的最简hibernate实例
- partitionmagic:在Microsoft Analysis里Merge partition
- Oracle结构设计技巧
热门标注
最近更新
- 使用期工作小结,Chrome使用小结
- 安全经验分享案例,分享35个非常漂亮的单页网站设计案例
- qq2011,2011年5月6日 记
- firebug,Firebug 控制台详解
- firebug,Firebug 控制台详解
- firebug,Firebug 控制台详解
- firebug,Firebug 控制台详解
- 控件拖拽,打造自己地图AxTOCContrl树形控件——XUTocControl(成功解决节点控件拖拽问题)
- mvc3ef,EF Code First 和 ASP.NET MVC3 工具更新
- Winform开发框架之字典数据管理
- 基于Svn Server的共享项目
- 豆瓣电台最新版,新版豆瓣电台VS百度听
- vb读写文件,C#中读写文件总结
- gs插件精简,仿World Wind构造自己的C#版插件框架——WW插件机制精简改造
- 心理测试题目,java题目测试
- 数据结构常用算法,算法与数据结构(2)——图的表示法与常用的转化算法
- Linux kernel Synchronization
- 翻页代码,24款超实用的Web 2.0风格翻页代码
- 缓存机制,CYQ.Data 轻量数据层之路 V4.5 版本发布[更好的使用体验,更优的缓存机制]
- asp.net分页控件_AspNetPager
最新评论