gpt4 book ai didi

spring - 如何在 hibernate 全文搜索中获得总计数?

转载 作者:行者123 更新时间:2023-12-02 05:34:13 26 4
gpt4 key购买 nike

我正在尝试通过以下链接使用 hibernate 全文: hibernate/search/4.1/reference/en-US/html/getting-started

基本上,它是有效的,但我想知道如何在执行全文查询时获取总计数,然后我可以告诉用户在这样的查询中有多少结果和多少页。

这是代码(使用 JPA 创建和执行搜索):

EntityManager em = entityManagerFactory.createEntityManager();
FullTextEntityManager fullTextEntityManager =
org.hibernate.search.jpa.Search.getFullTextEntityManager(em);
em.getTransaction().begin();

// create native Lucene query unsing the query DSL
// alternatively you can write the Lucene query using the Lucene query parser
// or the Lucene programmatic API. The Hibernate Search DSL is recommended though
QueryBuilder qb = fullTextEntityManager.getSearchFactory()
.buildQueryBuilder().forEntity( Book.class ).get();
org.apache.lucene.search.Query query = qb
.keyword()
.onFields("title", "subtitle", "authors.name", "publicationDate")
.matching("Java rocks!")
.createQuery();

// wrap Lucene query in a javax.persistence.Query
javax.persistence.Query persistenceQuery =
fullTextEntityManager.createFullTextQuery(query, Book.class);
persistenceQuery.setFirstResult((page - 1) * PAGECOUNT);
persistenceQuery.setMaxResults(PAGECOUNT);
// execute search
List result = persistenceQuery.getResultList();

em.getTransaction().commit();
em.close();

在 SQL 中,我可以使用 select count(*) from something,但在这里我不知道该怎么做。我只想每次获取一页数据并使用另一个 API 来获取总计数。

最佳答案

query.getResultSize(); //return the total number of matching ... regardless of pagination

关于spring - 如何在 hibernate 全文搜索中获得总计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9868419/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com