我最近将hibernate search从5.x版本升级到6.x版本,遇到了一些问题。大多数语法都可以通过参考文档来处理,但是有一个类似的语法不能直接处理。官方文档也给出了说明,但是文档内容不够详细,无法完成。这是我5.x版本的语法queryBuilder.moreLikeThis().comparingFields("name").toEntity(product).createQuery()
但是我想用6.x版本暂时不知道怎么改造
希望知道的人解答一下,谢谢!
我最近将hibernate search从5.x版本升级到6.x版本,遇到了一些问题。大多数语法都可以通过参考文档来处理,但是有一个类似的语法不能直接处理。官方文档也给出了说明,但是文档内容不够详细,无法完成。这是我5.x版本的语法queryBuilder.moreLikeThis().comparingFields("name").toEntity(product).createQuery()
但是我想用6.x版本暂时不知道怎么改造
希望知道的人解答一下,谢谢!
如迁移指南中所述moreLikeThis
,Hibernate Search 6 中不再存在谓词。
但是,如果它只是一个字段,那么您实际上并不需要moreLikeThis
谓词开始。
这应该返回与您当前代码相同的结果:
SearchSession session = Search.session(entityManager);
List<Product> hits = session.search(Product.class)
.where(f -> f.match().field("name").matching(product.getName()))
.fetchHits(20);