Hibernate Search-如何动态地将可排序字段添加到索引?

时间:2019-04-25 15:32:52

标签: hibernate-search

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

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

以前,当任何字段都可以用于排序时,它可以与HS3一起使用,但是在v5中,我们必须提前告知HS有关可排序字段。

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

1 个答案:

答案 0 :(得分:1)

here所述,您唯一的解决方案是将配置属性hibernate.search.index_uninverting_allowed设置为true。它不是很有效,因此您会收到警告,但是在HS3中它也不是很有效(工作原理相同)。 标有@SortableField的字段仍将提高性能,并且不会触发警告。

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