我们刚刚发布了 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
-