首页 > 解决方案 > Hibernate Search - 如何动态地将可排序字段添加到索引中?

问题描述

我知道 @SortableField 注释以及 MetadataProvidingFieldBridge.configureFieldMetadata 方法,它提供了将字段指定为在 HS 5 中可排序的方法。

但是,这些仅适用于创建索引时。在我的应用程序中,结果可以用任意标签进行标记,这些标签具有相关的分数,我需要能够对其中的任何一个进行排序。所以字段的名称是标签名称,值是标签的分数。

以前,当任何字段都可用于排序时,这适用于 HS3,但在 v5 中,我们必须提前告诉 HS 可排序字段。

所以问题是:是否可以在用户创建新标签时动态添加可排序字段,如果可以,如何?

标签: hibernate-search

解决方案


正如这里所解释的,您唯一的解决方案是将配置属性设置hibernate.search.index_uninverting_allowedtrue. 它不是很有效,因此您会收到警告,但是在 HS3 中它也不是很有效(它的工作原理相同)。标有 的字段@SortableField仍将获得性能提升,并且不会触发警告。

我们确实计划在 Hibernate Search 6 中添加一种更好、更有效的方式来对动态字段进行排序。


推荐阅读