我们刚刚发布了 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:我们添加了一些默认的标识符桥接器。
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
-