如何在Hibernate Search中索引一组UUID?

时间:2013-06-11 10:08:57

标签: java lucene indexing uuid hibernate-search

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

到目前为止,我已尝试在@IndexEmbedded上添加@Field@FieldBridgeSet<UUID>(其中包含UUID,而不是Set<UUID>)注释没有效果。 Hibernate Search文档都显示索引Set<X>,其中X是另一个具有索引的注释实体。

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

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

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

1 个答案:

答案 0 :(得分:1)

您不需要 @IndexedEmbedded ,但您需要一个自定义网桥。这样的事情应该有效:

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

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