java - 如何在 Hibernate 搜索中索引一组 UUID?

标签 java lucene indexing uuid hibernate-search

我的应用程序中有一个实体,其中有 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是一个简单包装 UUID 的实体用于索引,或编写特定的 FieldBridge处理 Set<UUID> .

最佳答案

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

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

听起来你已经尝试过类似的事情了。连桥都没有接到电话吗?有异常(exception)吗?

关于java - 如何在 Hibernate 搜索中索引一组 UUID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17041583/

相关文章:

java - 无法从/hibernate.cfg.xml 加载配置

lucene - 无需保存数据的 Elasticsearch 引擎

search - ElasticSearch如何对过滤查询(而非文本查询)进行排名?

database - Postgres 不在 UUID 的 "IN"子句中使用索引

MySql Query Speed Confusion BETWEEN 或多个索引查询

java - 转换 GMT 日期时间字符串

java - XML 未使用 XAS 解析器通过 XSD 进行验证

java - Autowiring 类返回空值

java - 解析 XML 提要

search - 轻量级搜索索引 API/库