【问题标题】:Hibernate Search field mappingHibernate 搜索字段映射
【发布时间】:2011-11-21 10:20:00
【问题描述】:

Hibernate Search @Field 注解提供了为属性选择索引名称的选项:

...
@Field(name="somethingOrOther")
public String getSomeValue() {
...

用户指南对@Field 注释的名称属性是这样说的:

name : 描述属性应该存储在哪个名称下 Lucene 文档。默认值为属性名称(遵循 JavaBeans 约定)

有没有办法将名称设置为注释 bean 中的另一个值?

类似

...
public String getFieldName() {
   return fieldName;
}

@Field(name="{fieldName}")
public String getFieldValue() {
   return fieldValue;
}

其中 {fieldName} 将替换为 getFieldName() 的结果。

【问题讨论】:

  • 查了源码,好像做不到。

标签: hibernate full-text-search hibernate-search


【解决方案1】:

可以使用自定义FieldBridge来完成。在实现 FieldBridge 接口时,您自己的代码负责将值添加到 Lucene 文档中,因此实际上您可以编写任何您想要的内容。

FieldBridge documentation

【讨论】:

  • 谢谢!这样就可以了(我想,我不记得确切的用例了)。因为它是我找到了另一种方法来做我需要的。