1

我的应用程序中有一个实体,Set<UUID>上面有一个我想索引的实体。

到目前为止,我已经尝试将@IndexEmbedded,@Field@FieldBridge(它需要一个 UUID,而不是Set<UUID>)注释放在Set<UUID>没有效果。Hibernate Search 文档都显示索引Set<X>在哪里X是另一个实体,它具有用于索引的注释。

我正在通过在 Netbeans 中设置断点并使用 Luke 手动检查磁盘上的 lucene 索引来测试它是否出现在索引中,以排除编写不正确的查询。其他字段正在被索引并使用此方法显示在索引中。

我目前使用的是 Hibernate Search 3.4,因为它是旧应用程序的一部分,无法轻松升级。

任何人都可以说明情况吗?我开始怀疑这是不支持的,最快的方法是从 更改Set<UUID>Set<Y>,其中Y是一个简单地包装UUIDfor 索引的实体,或者编写一个特定FieldBridge的来处理Set<UUID>.

4

1 回答 1

1

您不需要@IndexedEmbedded,但您需要一个自定义桥接器。像这样的东西应该工作:

@Field(bridge = @FieldBridge(impl = UUIDFieldBridge.class))
private Set<UUID> uuids;

听起来你已经尝试过这样的事情。这座桥甚至没有被调用吗?有例外吗?

于 2013-06-12T08:30:49.850 回答