Hibernate Search 推出了新的测试版,并带来了一系列有趣的新特性
- 命名过滤器:查询结果上的自定义过滤器(透明缓存)
- 自动索引优化
- 查询元数据访问(得分、...)
- 支持 Java 持久化 API
- 索引分片(将实体索引到多个底层的 Lucene 索引中)
命名过滤器
基于 Lucene 过滤器,命名过滤器能够将自定义的过滤器限制条件应用于查询结果。通过名称和参数启用(类似于 Hibernate Core 过滤器),这些过滤器可缓存以提高性能。一些明显的用例包括安全、时间数据、人口限制、查询结果内查询。
自动索引优化
Hibernate Search 可以在执行一定数量的操作(添加、删除)或事务后透明地优化您的索引。
查询结果元数据
投影 API 已得到增强,可以返回查询特定数据,如文档得分(相关性)和其他元数据。
支持 Java 持久化 API
现在有了 FullTextEntityManager 和 FullTextQuery(扩展 javax.persistence.Query)。无需再访问 entityManager.getDelegate()。
索引分片
在极端情况下,Lucene 索引需要拆分为多个物理索引。现在,Hibernate Search 可以将给定的实体索引到多个底层的 Lucene 索引。
以及更多
还有一些其他特性
- 能够以不同的设置将给定属性索引到多个不同的字段中(无需自定义 FieldBridge)
- 精细分析器(全局、每个实体、每个属性或每个字段)
- 暴露 Lucene 合并因子、最大合并文档数和最大缓冲文档数
- 配套 Lucene 2.2
感谢John Griffin和Hardy Ferentschik在此版本发布中的付出。特性集达到了最终发布的预期(实际上更多)并且证明非常稳定。我们预计会有一个短暂的CR周期,随后很快就会是GA。