簡體   English   中英

未指定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?

我的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 Search中有關此特定主題的文檔

另一個解決方案是在類路徑中創建hibernate.properties文件(我將其放置在application.properties文件旁邊),然后在其中插入hibernate.search.lucene_version LATEST

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM