自从上次 Hibernate Search 发布以来已经很久了,但我们并没有懈怠。我们很高兴地宣布 3.1.0 公测版1,它包含大量新特性和改进。本版本使用 Lucene 2.3.x,与 Hibernate Core 3.3、Hibernate Annotations 3.4 和 Hibernate EntityManager 3.4 兼容。以下是部分主要新特性和改进的列表
- 更灵活的分析器支持(见下文)
- Hibernate Search 引擎不再绑定到 Hibernate Core(见下文)
- 在投影方面进行性能改进(Hibernate Search 现在与纯 Lucene 一样快)
- 在对象加载算法方面进行性能改进(当请求多个对象类型时)
- 在大索引副本上的更好内存管理
- 通过显式地将更改刷新到索引的编程 API 来改进批量索引方法(废弃了旧的 batch_size 方法)
- 通过共享段读取器提供程序策略来改进资源共享
- 更好的和更透明的过滤器缓存解决方案
- 访问更多 Lucene 功能,包括词项位置、相似性和查询解释
- 简化配置(事件)
- 更多内置桥梁
Hibernate Search 允许您通过 Solr 分析器框架声明性地定义分析器,并解耦分词器和标记过滤器使用。现在,轻松索引字段以进行音位、同义词、Snowball(词干提取)等功能变得非常简单。 在此 beta1 版本中,一个小的依赖项错误已经泄露。如果您想在一些过滤器上使用 @AnalyzerDef,则需要将 apache-solr-analzers.jar 替换为可以从 apache.org 下载的完整 solr 分发 jar。
由于我们的Google Summer of Code学生Navin的工作,核心引擎现在已从Hibernate Core抽象化。Hibernate Search现在是JBoss Cache全文搜索引擎(关于这一点将在后续文章中详细介绍),并且现在支持其他数据存储(包括其他ORM)。
我们可能会发布新的文章来详细说明这些功能。
Hibernate Search in Action已经反映了大部分新功能,并将在不久的将来详细介绍所有功能。