如何在 Hibernate Search 6 的几个桥中重用一个字段?

仔猪

在 Hibernate Search 5 中,我有几个填充相同字段的自定义桥。这很方便,因此我可以只对一个字段执行查询。现在,如果我尝试这样做,我会收到此错误:

HSEARCH600034: Duplicate index field definition: 'attributes'. Index field names must be unique. Look for two property mappings with the same field name, or two indexed-embeddeds with prefixes that lead to conflicting index field names, or two custom bridges declaring index fields with the same name.

在实现 PropertyBinder 时,我还没有找到从 PropertyBinding 上下文获取现有字段的方法,只有记录在案的添加新字段的方法:

    IndexFieldReference<String> attributesField = schemaElement
            .field("attributes", f -> f.asString())
            .toReference();

我是否遗漏了什么或不再可能,我需要添加新字段?

约罗德

如何在 Hibernate Search 6 的几个桥中重用一个字段?

目前,你不能。

这种限制是 Hibernate Search 6 在启动时执行的(许多)健全性检查的副作用,它可以防止常见错误并间接允许搜索 DSL 中的更直观的行为。

您的选择几乎是这样的:

  • 您可以重构您的网桥,以重新组合在单个网桥中对同一字段有贡献的所有代码(aTypeBridgePropertyBridge应用于返回您感兴趣的所有值的聚合列表的非持久化 getter )。
  • 或者您将您的桥梁更改为每个贡献其自己的领域,并更改您的搜索代码以同时定位所有这些领域;大多数(如果不是全部)谓词允许针对同一谓词中的多个字段

第二种解决方案也是推荐的索引方式,因为它会产生更准确的相关性分数。

编辑:如果您选择解决方案 2,您可能会对这个(尚未实现)功能感兴趣:https ://hibernate.atlassian.net/browse/HSEARCH-3926

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Hibernate Search 6中LocalDateTime的范围查询

更改一个字段后,Hibernate Search未编制索引

如何在 Hibernate-search 中索引继承的字段?

如何在 Hibernate Lucene Search 中添加多个限制?

如何在Tomcat 6中为Hibernate使用JTA支持?

在Hibernate 4上,如何获取来自select语句的实体的一个字段?

如何读取“ apt search”返回的输出的第一个字段?

如果用户在jsp中填写一个字段(使用spring mvc和hibernate时),我如何自动填写其他表单字段

Hibernate Search 6 使用多个关键字搜索多个字段

如何在 Quarkus 中使用 Hibernate 6

Hibernate-Search 6和Elasticsearch集成

Hibernate Search:如何查询父类中的字段?

如何在反应中根据另一个字段更新一个字段?

如何在Hibernate Search / Lucene中禁用默认评分/增强功能?

如何在SQL查询的一个字段中求和多个字段?

Angular 6仅需要多个字段中的一个字段

Hibernate:如何在Hibernate中删除多行?

如何在Hibernate Search中正确使用@ContainedIn批注?

如何在Hibernate Search中使用Wordnet同义词?

如何在查询中添加基于另一个字段的字段

Hibernate Search Facet在多个字段上

如何从vb6中的整数值中删除最后一个字符

如何使用 FilterUserMixin 过滤 Django 中的一个字段或另一个字段

如何在logstash中的一个字段中多次匹配

如何在两列中显示一个字段中的 AVRO 数据?

如何在Ruby on Rails中验证表单中至少一个字段的存在

在Hibernate Search中索引数据

如何在Hibernate Search中将范围查询与关键字查询结合在一起?

如何在访问中将表中的一个字段设置为等于表中的另一个字段