hibernate-search - Hibernate Search - 如何动态地将可排序字段添加到索引中?
问题描述
我知道 @SortableField 注释以及 MetadataProvidingFieldBridge.configureFieldMetadata 方法,它提供了将字段指定为在 HS 5 中可排序的方法。
但是,这些仅适用于创建索引时。在我的应用程序中,结果可以用任意标签进行标记,这些标签具有相关的分数,我需要能够对其中的任何一个进行排序。所以字段的名称是标签名称,值是标签的分数。
以前,当任何字段都可用于排序时,这适用于 HS3,但在 v5 中,我们必须提前告诉 HS 可排序字段。
所以问题是:是否可以在用户创建新标签时动态添加可排序字段,如果可以,如何?
解决方案
正如这里所解释的,您唯一的解决方案是将配置属性设置hibernate.search.index_uninverting_allowed
为true
. 它不是很有效,因此您会收到警告,但是在 HS3 中它也不是很有效(它的工作原理相同)。标有 的字段@SortableField
仍将获得性能提升,并且不会触发警告。
我们确实计划在 Hibernate Search 6 中添加一种更好、更有效的方式来对动态字段进行排序。
推荐阅读
- javascript - 使用 JavaScript 生成首字母缩略词
- c# - 通过 TCP 的 2 个程序之间的本地连接问题
- excel - 159/5000 如果自动复制另一个工作表中的数据,如何保护Excel中的工作表?
- list - 获取列表中的重复项并在列表中显示答案
- laravel - Laravel Blade Helpers 不拉入带有空格的列
- python - 标准库是否支持生成唯一 ID?
- sql - TO_DAYS() 不是公认的内置函数名
- android - ActivityViewModel + AdapterItemViewModel 连接
- flutter - 向我展示在 Flutter 中执行此操作的更好方法
- c - 取消引用 [] 和 * 之间差异的指针