java - 未指定 hibernate.search.lucene_version:使用 LUCENE_CURRENT
问题描述
我正在使用带有 Spring Boot 的 Hibernate Search。我对 Hibernate Search 没有任何特殊配置。它只是在应用程序启动时显示警告。如何指定 hibernate.search.lucene_version?
我的 SearchService 类(唯一使用 Hibernate Search 的地方):
@Service
public class SearchService {
private FullTextEntityManager fullTextEntityManager;
private QueryBuilder queryBuilder;
@Autowired
public SearchService(EntityManager entityManager) {
entityManager = entityManager.getEntityManagerFactory().createEntityManager();
fullTextEntityManager = Search.getFullTextEntityManager(entityManager);
}
@PostConstruct
public void initialize() throws InterruptedException {
fullTextEntityManager.createIndexer().startAndWait();
queryBuilder = fullTextEntityManager.getSearchFactory()
.buildQueryBuilder().forEntity(Post.class).get();
}
public List<Post> searchByQuery(String query) {
org.apache.lucene.search.Query luceneQuery = queryBuilder.phrase()
.withSlop(5)
.onField("title")
.sentence(query)
.createQuery();
Query jpaQuery = fullTextEntityManager.createFullTextQuery(luceneQuery, Post.class);
return (List<Post>) jpaQuery.setMaxResults(20).getResultList();
}
}
解决方案
在您的 Spring Boot 配置文件中,为任何 Hibernate ORM/Hibernate Search 属性添加前缀spring.jpa.properties.
.
所以在一个application.properties
文件中:
spring.jpa.properties.hibernate.search.lucene_version LATEST
在一个application.yaml
文件中:
spring.jpa.properties:
hibernate.search:
lucene_version: LATEST
使用您认为合适的任何值来代替LATEST
. 可用值是 中常量的名称org.apache.lucene.util.Version
。
另请参阅Hibernate Search 中有关此特定主题的文档。
更新
在 Hiberante Search 6 中,此属性已变为:
spring.jpa.properties.hibernate.search.backend.lucene_version=LATEST
推荐阅读
- powershell - 关于 azure powershell、定义两次验证和磁盘创建的问题
- unreal-engine4 - 将贝塞尔曲线平滑到移动端点
- javascript - 检查是否有任何状态改变
- asp.net-core - 如何在 Asp.net 核心控制器中获取 MassTransit ConversationId 而不发送任何消息?
- movesense - 使用 React 本机应用程序收集 Movesense 传感器数据
- chatbot - AIML - 基于上一个主题的回答
- elasticsearch - 如何在spring data elasticsearch中实现docment的两个字段具有相同值的查询文档并进行聚合
- azure-cli - 如何使用 az monitor 为 HttpQueueLength 创建自动缩放规则
- db2 - 使用 db2 中的 Ingest Utility 从 csv 加载数据时跳过标题行
- java - com.google.code.javaparser 和 com.github.javaparser 有什么区别?