2008-01-22
Lucene2.1的新变化
1.9 到 2.0 的改动不是很多,主要是废弃了一些 API , 2.0 起了一个过渡的作用。
2.1 是在 2.0 基础上做了很多的改进,提升了性能,修复了一些 Bug 等。
Lucene2.1 在索引的格式上做了一些改进,所以旧版本的 Lucene 是无法访问 2.1 版的索引文件。但是 2.1 版本的可以读写旧版本的索引文件。保持向下的兼容性。这点需要我们在使用时注意。
下面简单的列出一些新的特性:
1. 's' 和 't' 从默认的 stopwords 中移掉了。但是依然还有 'a' 也可以会有同样的问题,所以分词需要针对自己的应用进行自定义。
2. 更新了 StandardAnalyzer 中的针对 CJK 的 Unicode 代码范围。用处不大,因为我们中文需要自己开发分词。
3. 允许在 QueryParser 的最前面使用通配符 (*, ?) ,之前是不允许的。这个比较有意义,可以实现一些模糊搜索。
4. QueryParser 默认使用 ConstantScoreRangeQuery 执行范围查询。增加了 useOldRangeQuery 属性允许在需要的情况下使用旧的 RangeQuery
5. 对于 WildcardQuery ,如果一个 term 不包含任何的 ? 或者 * ,之前会抛出异常,现在会执行一个 TermQuery 。
6. 去掉了 deprecated 的 doc.fields() 方法和 Enumeration
7. write lock 现在默认的位置是索引的目录,简单命名为 write.lock
8. 新的 FieldSelector API ,相关的 IndexReader 和实现都发生了变化。新的 Fieldable 接口被用作字段的延迟加载上。
9. 使用 MultiFieldQueryParser 的时候可以为不同的 field 指定不同的 boosts
10. 新的方法 IndexWriter.addIndexesNoOptimize() 在新添加一个新的 segments 的时候,只进行合并,不进行优化。
11. QueryParser 允许在引号和短语中使用反斜线
12. 增加了方法 RAMDirectory.sizeInBytes(), IndexWriter.ramSizeInBytes() 和 IndexWriter.flushRamSegments() ,允许应用程序控制索引时缓存文档对内存的使用,这些蛮有用的,可以用于监控索引的过程。
13. QueryParser 解析 *:* 为匹配所有的内容
14. 可以通过命令行在已经存在的索引文件中修改和删除 field
15. IndexWriter 增加了方法来高效得更新 documents 。增加 IndexWriter.flush() 方法将内存的内容刷新到文件系统。
大兵 2007-3-22
2.1 是在 2.0 基础上做了很多的改进,提升了性能,修复了一些 Bug 等。
Lucene2.1 在索引的格式上做了一些改进,所以旧版本的 Lucene 是无法访问 2.1 版的索引文件。但是 2.1 版本的可以读写旧版本的索引文件。保持向下的兼容性。这点需要我们在使用时注意。
下面简单的列出一些新的特性:
1. 's' 和 't' 从默认的 stopwords 中移掉了。但是依然还有 'a' 也可以会有同样的问题,所以分词需要针对自己的应用进行自定义。
2. 更新了 StandardAnalyzer 中的针对 CJK 的 Unicode 代码范围。用处不大,因为我们中文需要自己开发分词。
3. 允许在 QueryParser 的最前面使用通配符 (*, ?) ,之前是不允许的。这个比较有意义,可以实现一些模糊搜索。
4. QueryParser 默认使用 ConstantScoreRangeQuery 执行范围查询。增加了 useOldRangeQuery 属性允许在需要的情况下使用旧的 RangeQuery
5. 对于 WildcardQuery ,如果一个 term 不包含任何的 ? 或者 * ,之前会抛出异常,现在会执行一个 TermQuery 。
6. 去掉了 deprecated 的 doc.fields() 方法和 Enumeration
7. write lock 现在默认的位置是索引的目录,简单命名为 write.lock
8. 新的 FieldSelector API ,相关的 IndexReader 和实现都发生了变化。新的 Fieldable 接口被用作字段的延迟加载上。
9. 使用 MultiFieldQueryParser 的时候可以为不同的 field 指定不同的 boosts
10. 新的方法 IndexWriter.addIndexesNoOptimize() 在新添加一个新的 segments 的时候,只进行合并,不进行优化。
11. QueryParser 允许在引号和短语中使用反斜线
12. 增加了方法 RAMDirectory.sizeInBytes(), IndexWriter.ramSizeInBytes() 和 IndexWriter.flushRamSegments() ,允许应用程序控制索引时缓存文档对内存的使用,这些蛮有用的,可以用于监控索引的过程。
13. QueryParser 解析 *:* 为匹配所有的内容
14. 可以通过命令行在已经存在的索引文件中修改和删除 field
15. IndexWriter 增加了方法来高效得更新 documents 。增加 IndexWriter.flush() 方法将内存的内容刷新到文件系统。
大兵 2007-3-22
发表评论
- 浏览: 54660 次
- 性别:

- 来自: 上海

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
Lucene的评分(score)机制 ...
顶楼主一下。 很早就在做这块的实验了,lucene的score机制更面向与算法数 ...
-- by linliangyi2007 -
Lucene的评分(score)机制 ...
lot1 写道grantbb 写道 在Lucene中score简单说是由 tf ...
-- by imjl -
Lucene的评分(score)机制 ...
我不知道楼上所说的商业应用是指什么呢?据我所知,很多大的互联网公司都在使用Luc ...
-- by grantbb -
Lucene的评分(score)机制 ...
grantbb 写道 在Lucene中score简单说是由 tf * idf * ...
-- by lot1 -
Tomcat5到Tomcat6的升级 ...
能否给出一个具体的链接呢,我在tomcat的网站左侧属性项中还真是没有找到,见笑 ...
-- by aunox






评论排行榜