[英]hibernate.search.lucene_version was not specified: using 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.
前綴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.properties
文件(我將其放置在application.properties文件旁邊),然后在其中插入hibernate.search.lucene_version LATEST
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.