hibernate.search.lucene_version 未指定:使用 LUCENE_CURRENT
hibernate.search.lucene_version was not specified: using LUCENE_CURRENT
我在 Spring Boot 中使用 Hibernate Search。我对 Hibernate Search 没有任何特殊配置。它只是在应用程序启动时显示警告。如何指定 hibernate.search.lucene_version?
My SearchService class(唯一使用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 引导配置文件中,为任何 Hibernate ORM/Hibernate 搜索 属性 添加前缀 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
.
中常量的名称
另见 the documentation about this specific topic in Hibernate Search。
更新
在 Hiberante Search 6 中,这个 属性 变成了:
spring.jpa.properties.hibernate.search.backend.lucene_version=LATEST
另见 the documentation about this specific topic in Hibernate Search 6。
另一个解决方案是在类路径中创建 hibernate.properties
文件(我把它放在我的 application.properties 文件旁边)并在其中插入 hibernate.search.lucene_version LATEST
。
我在 Spring Boot 中使用 Hibernate Search。我对 Hibernate Search 没有任何特殊配置。它只是在应用程序启动时显示警告。如何指定 hibernate.search.lucene_version?
My SearchService class(唯一使用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 引导配置文件中,为任何 Hibernate ORM/Hibernate 搜索 属性 添加前缀 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
.
另见 the documentation about this specific topic in Hibernate Search。
更新
在 Hiberante Search 6 中,这个 属性 变成了:
spring.jpa.properties.hibernate.search.backend.lucene_version=LATEST
另见 the documentation about this specific topic in Hibernate Search 6。
另一个解决方案是在类路径中创建 hibernate.properties
文件(我把它放在我的 application.properties 文件旁边)并在其中插入 hibernate.search.lucene_version LATEST
。