我知道@SortableField批注以及MetadataProvidingFieldBridge.configureFieldMetadata方法,这些方法提供了将字段指定为可在HS 5中排序的方法。
但是,这些仅在创建索引时适用。在我的应用程序中,结果可以使用任意标签进行标记,这些标签具有相关的得分,我需要能够对它们中的任何一个进行排序。因此,字段名称是标签名称,值是标签的分数。
以前,当任何字段都可以用于排序时,它可以与HS3一起使用,但是在v5中,我们必须提前告知HS有关可排序字段。
问题是:当用户创建新标签时,是否可以动态添加可排序字段,如果可以,如何添加?
答案 0 :(得分:1)
如here所述,您唯一的解决方案是将配置属性hibernate.search.index_uninverting_allowed
设置为true
。它不是很有效,因此您会收到警告,但是在HS3中它也不是很有效(工作原理相同)。
标有@SortableField
的字段仍将提高性能,并且不会触发警告。
我们确实计划在Hibernate Search 6中添加一种更好,更有效的方式来对动态字段进行排序。