在我的应用程序中,我必须将实体存储在Infinispan缓存中,并在这种内存中的repo上运行用户提供的搜索查询。问题是,我的实体有一个字符串数组,假设它是这样的:
@Indexed(index = "bookIndex")
public class Book {
@Field
private Long id;
@Field
private String[] authors;
}
我的问题是,显然你不能像这样索引数组。明显的解决方案是创建Author对象并嵌入索引,但这不是理想的选择(性能问题-dto必须尽可能小)。
是否有其他方法来索引此类字段?
1条答案
按热度按时间iszxjhcz1#
编辑:从Hibernate Search 6开始,您不需要任何解决方法:下面的Map将如预期的那样工作,索引数组的元素。
至于休眠搜索5...
只要在数组属性上使用
@IndexedEmbedded
,Hibernate就会理解您是指数组元素而不是数组本身的索引:该特性没有文档记录,因为它可能会导致非基元数组元素的奇怪行为,但在您的情况下应该是好的。
或者,您可以编写自己的桥:https://docs.jboss.org/hibernate/stable/search/reference/en-US/html_single/#section-custom-bridges