Hibernate Search 是一个库,它通过自动索引实体将 Hibernate ORM 与 Apache Lucene 或 Elasticsearch 集成,从而启用高级搜索功能:全文搜索、地理空间、聚合等。更多信息请参见 hibernate.org 上的 Hibernate Search。

我们刚刚发布了 Hibernate Search 的三个维护版本:6.0.7.Final、5.11.10.Final 和 5.10.12.Final。

这些版本主要将 Hibernate Search 升级到最新兼容的 Hibernate ORM 版本,在 5.x 版本中添加了对不再存在于 6.0 版本中的功能的弃用,并修复了一些错误。

新特性

有关自上次发布以来的完整更改列表,请参阅发行说明

6.0.7.Final

  • HSEARCH-4303:在包含实体的关联的另一侧不执行相应的更新时插入/删除包含的实体现在将触发重新索引,就像在 Hibernate Search 5 中一样。

    这具有与 Hibernate Search 5 相同的限制:如果关联的另一侧已经加载,则新实体将被忽略。因此,如果您能的话,不要依赖于这个修复,而是 确保始终更新关联的两侧

  • HSEARCH-4307:Hibernate Search 对自身版本的检测(用于启动时的日志记录)现在即使在原生镜像上也应该正常工作。

  • HSEARCH-4331:我们添加了一些默认的标识符桥接器。

    在Hibernate Search 5中曾经支持的用于文档标识符的所有类型,现在也应该在Hibernate Search 6中得到支持(尽管可能 格式可能不同),但除了 java.util.Class 之外。

5.11.10.Final

  • HSEARCH-4225:修复了在事务外部更新索引时的内存泄漏(SessionImpl)。

  • HSEARCH-4241:升级到Hibernate ORM 5.4.32.Final

  • HSEARCH-4336:为了简化迁移到Hibernate Search 6,一些在Hibernate Search 6.0中没有直接对应功能的特性已被弃用。您可能会在代码中看到编译警告或在启动时记录警告。

    有关这些新弃用功能的完整列表,请参见 下面

5.10.12.Final

  • HSEARCH-4333:升级到Hibernate ORM 5.3.23.Final

  • HSEARCH-4336:为了简化迁移到Hibernate Search 6,一些在Hibernate Search 6.0中没有直接对应功能的特性已被弃用。您可能会在代码中看到编译警告或在启动时记录警告。

    有关这些新弃用功能的完整列表,请参见 下面

Hibernate Search 5.11.10.Final / 5.10.12.Final中新的弃用功能完整列表

  • 对实体类型和属性上的 @Analyzer 的支持已被弃用,并将在Hibernate Search 6中删除。

    使用 @Field(analyzer = @Analyzer(…)) 分别为每个索引字段分配一个分析器。

  • 通过注解定义分析器或归一化器的支持已被弃用,并将从Hibernate Search 6中删除。

    以下类和方法作为结果被弃用

    • org.hibernate.search.annotations.AnalyzerDef

    • org.hibernate.search.annotations.AnalyzerDefs

    • org.hibernate.search.annotations.NormalizerDef

    • org.hibernate.search.annotations.NormalizerDefs

    • org.hibernate.search.annotations.CharFilterDef

    • org.hibernate.search.annotations.TokenizerDef

    • org.hibernate.search.annotations.TokenFilterDef

    • org.hibernate.search.cfg.AnalyzerDefMapping

    • org.hibernate.search.cfg.CharFilterDefMapping

    • org.hibernate.search.cfg.TokenFilterDefMapping

    • org.hibernate.search.cfg.NormalizerDefMapping

    • org.hibernate.search.cfg.CalendarBridgeMapping#analyzerDef

    • org.hibernate.search.cfg.CalendarBridgeMapping#normalizerDef

    • org.hibernate.search.cfg.ClassBridgeMapping#analyzerDef

    • org.hibernate.search.cfg.ClassBridgeMapping#normalizerDef

    • org.hibernate.search.cfg.ContainedInMapping#analyzerDef

    • org.hibernate.search.cfg.ContainedInMapping#normalizerDef

    • org.hibernate.search.cfg.DateBridgeMapping#analyzerDef

    • org.hibernate.search.cfg.DateBridgeMapping#normalizerDef

    • org.hibernate.search.cfg.DocumentIdMapping#analyzerDef

    • org.hibernate.search.cfg.DocumentIdMapping#analyzerDef

    • org.hibernate.search.cfg.EntityMapping#analyzerDef

    • org.hibernate.search.cfg.EntityMapping#normalizerDef

    • org.hibernate.search.cfg.EntitySpatialMapping#analyzerDef

    • org.hibernate.search.cfg.EntitySpatialMapping#normalizerDef

    • org.hibernate.search.cfg.FieldBridgeMapping#analyzerDef

    • org.hibernate.search.cfg.FieldBridgeMapping#normalizerDef

    • org.hibernate.search.cfg.FieldMapping#analyzerDef

    • org.hibernate.search.cfg.FieldMapping#normalizerDef

    • org.hibernate.search.cfg.FullTextFilterDefMapping#analyzerDef

    • org.hibernate.search.cfg.FullTextFilterDefMapping#normalizerDef

    • org.hibernate.search.cfg.IndexedClassBridgeMapping#analyzerDef

    • org.hibernate.search.cfg.IndexedClassBridgeMapping#normalizerDef

    • org.hibernate.search.cfg.IndexedMapping#analyzerDef

    • org.hibernate.search.cfg.IndexedMapping#normalizerDef

    • org.hibernate.search.cfg.IndexEmbeddedMapping#analyzerDef

    • org.hibernate.search.cfg.IndexEmbeddedMapping#normalizerDef

    • org.hibernate.search.cfg.PropertyLatitudeMapping#analyzerDef

    • org.hibernate.search.cfg.PropertyLatitudeMapping#normalizerDef

    • org.hibernate.search.cfg.PropertyLongitudeMapping#analyzerDef

    • org.hibernate.search.cfg.PropertyLongitudeMapping#normalizerDef

    • org.hibernate.search.cfg.PropertyMapping#analyzerDef

    • org.hibernate.search.cfg.PropertyMapping#normalizerDef

    • org.hibernate.search.cfg.PropertySpatialMapping#analyzerDef

    • org.hibernate.search.cfg.PropertySpatialMapping#normalizerDef

    • org.hibernate.search.cfg.ProvidedIdMapping#analyzerDef

    • org.hibernate.search.cfg.ProvidedIdMapping#normalizerDef

    • org.hibernate.search.cfg.SearchMapping#analyzerDef

    • org.hibernate.search.cfg.SearchMapping#normalizerDef

  • @Analyzer.impl/@Normalizer.impl的支持已被弃用,并将从Hibernate Search 6中移除。

    请使用@Analyzer.definition和一个分析定义提供程序代替。

    以下类和方法作为结果被弃用

    • org.hibernate.search.annotations.Analyzer#impl

    • org.hibernate.search.annotations.Normalizer#impl

    • org.hibernate.search.cfg.FieldMapping#analyzer(java.lang.Class<?>)

    • org.hibernate.search.cfg.FieldBridgeMapping#analyzer(java.lang.Class<?>)

    • org.hibernate.search.cfg.ClassBridgeMapping#analyzer(java.lang.Class<?>)

    • org.hibernate.search.cfg.FieldBridgeMapping#analyzer(java.lang.Class<?>)

    • org.hibernate.search.cfg.FieldMapping#normalizer(java.lang.Class<?>)

  • 对Tika桥的支持已被弃用,并将从Hibernate Search 6中移除。

    以下类和方法作为结果被弃用

    • org.hibernate.search.annotations.TikaBridge

    • org.hibernate.search.bridge.TikaMetadataProcessor

    • org.hibernate.search.bridge.TikaParseContextProvider

    • org.hibernate.search.bridge.TikaParserProvider

    • org.hibernate.search.bridge.builtin.TikaBridge

  • 检索索引属性信息的功能将在Hibernate Search 6中移除。

    以下类和方法作为结果被弃用

    • org.hibernate.search.metadata.IndexedTypeDescriptor.getIndexedProperties

    • org.hibernate.search.metadata.IndexedTypeDescriptor.getProperty

    • org.hibernate.search.metadata.IndexedTypeDescriptor.getFieldsForProperty

    • org.hibernate.search.metadata.IndexedTypeDescriptor.isSharded

  • 对使用Sort DSL(org.hibernate.search.query.dsl.QueryBuilder#sort)对Hibernate Search不认识的索引字段进行排序的支持已被弃用,并将从Hibernate Search 6中移除。

    以下类和方法作为结果被弃用

    • org.hibernate.search.query.dsl.sort.SortAdditionalSortFieldContext.andByField(java.lang.String, org.apache.lucene.search.SortField.Type)

    • org.hibernate.search.query.dsl.sort.SortContext.byField(java.lang.String, org.apache.lucene.search.SortField.Type)

  • 对类似查询的支持已被弃用,并将从Hibernate Search 6中移除。

    以下类和方法作为结果被弃用

    • org.hibernate.search.query.dsl.QueryBuilder#moreLikeThis

    • org.hibernate.search.query.dsl.MoreLikeThisContext

    • org.hibernate.search.query.dsl.MoreLikeThisMatchingContext

    • org.hibernate.search.query.dsl.MoreLikeThisOpenedMatchingContext

    • org.hibernate.search.query.dsl.MoreLikeThisTerminalMatchingContext

    • org.hibernate.search.query.dsl.MoreLikeThisTermination

    • org.hibernate.search.query.dsl.MoreLikeThisToEntityContentAndTermination

  • 对分面选择(“钻取”)的支持将在Hibernate Search 6中移除。

    为了钻取并使查询仅返回特定分面,请将其包装在布尔查询(QueryBuilder#bool())中,并添加一个过滤子句(BooleanJunction#filteredBy(Query)),以约束分面字段的值,可以使用关键词查询(QueryBuilder#keyword())或范围查询(QueryBuilder#range())。

    以下类和方法作为结果被弃用

    • org.hibernate.search.query.facet.FacetSelection

  • 统计信息已被弃用,并将从Hibernate Search 6中移除。

    以下类和方法作为结果被弃用

    • org.hibernate.search.SearchFactory#getStatistics

    • org.hibernate.search.stat.Statistics

    • org.hibernate.search.stat.spi.StatisticsImplementor

  • 动态分片的支持已被弃用,并将从Hibernate Search 6中移除。

    以下类和方法作为结果被弃用

    • org.hibernate.search.store.ShardIdentifierProvider.getShardIdentifiersForQuery

    • org.hibernate.search.store.ShardIdentifierProvider.getShardIdentifiersForDeletion

    • org.hibernate.search.store.ShardIdentifierProviderTemplate.addShard

    • org.hibernate.search.store.ShardIdentifierProviderTemplate.getShardIdentifiersForQuery

    • org.hibernate.search.store.ShardIdentifierProviderTemplate.getShardIdentifiersForDeletion

  • 在同一索引中索引多个实体类型的支持已被弃用,并将从Hibernate Search 6中移除。

    请勿使用@Index(index = …​)将相同的索引分配给多个实体类型。

  • 对非独占索引使用的支持已被弃用,并将从Hibernate Search 6中移除。

    以下配置属性因此被弃用

    • hibernate.search.[default|<indexname>].exclusive_index_use

  • 通过配置属性覆盖索引名称的支持已被弃用,并将从Hibernate Search 6中移除。

    以下配置属性因此被弃用

    • hibernate.search.[fully qualified entity name].indexName

  • 通过JMX检索统计信息和通过JMX触发索引的支持已被弃用,并将从Hibernate Search 6中移除。

    以下配置属性因此被弃用

    • hibernate.search.jmx_enabled

    • hibernate.search.jmx_bean_suffix

如何获取这些版本

所有详细信息均可在hibernate.org的专用页面上找到并保持最新。

反馈、问题、想法?

要取得联系,请使用以下渠道:


回到顶部