【问题标题】:How do you index a Set of UUIDs in Hibernate Search?如何在 Hibernate Search 中索引一组 UUID?
【发布时间】:2013-06-07 03:41:21
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: java lucene indexing uuid hibernate-search


    【解决方案1】:

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

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

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

    【讨论】:

    • 我最终做了一个自定义的 Set&lt;UUID&gt; 桥实现,并使用它。
    猜你喜欢
    • 1970-01-01
    • 2013-01-11
    • 1970-01-01
    • 2020-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多