如何使用带通配符查询的 Hibernate Search 并输出结果对象列表
How to use Hibernate Search with a wildcard query and output the result object list
我想使用休眠搜索在 MySQL 数据库中的 XML 数据中搜索一个字符串,并打印包含该字符串的数据的结果列表。
..有效
public List<Object> listFormSubmissionsBySearch(String searchedString) throws InterruptedException {
Session session = sessionFactory.openSession();
EntityManager entityManager = session.getEntityManagerFactory().createEntityManager();
FullTextEntityManager fullTextEntityManager = Search.getFullTextEntityManager(entityManager);
fullTextEntityManager.createIndexer().startAndWait();
QueryBuilder queryBuilder = fullTextEntityManager.getSearchFactory().buildQueryBuilder().forEntity(FormSubmission.class).get();
org.apache.lucene.search.Query wildcardQuery = queryBuilder
.keyword()
.wildcard()
.onField("data") // name of the field in database
.matching(searchedString)
.createQuery();
List<Object> results = (List<Object>) fullTextEntityManager
.createFullTextQuery(wildcardQuery, FormSubmission.class)
.setProjection(ProjectionConstants.THIS, ProjectionConstants.SCORE)
.getResultList();
// List<Object> flowSubmissions = fullTextEntityManager.createFullTextQuery(wildcardQuery, FlowSubmission.class).getResultList();
return results;
}
我想使用休眠搜索在 MySQL 数据库中的 XML 数据中搜索一个字符串,并打印包含该字符串的数据的结果列表。
..有效
public List<Object> listFormSubmissionsBySearch(String searchedString) throws InterruptedException {
Session session = sessionFactory.openSession();
EntityManager entityManager = session.getEntityManagerFactory().createEntityManager();
FullTextEntityManager fullTextEntityManager = Search.getFullTextEntityManager(entityManager);
fullTextEntityManager.createIndexer().startAndWait();
QueryBuilder queryBuilder = fullTextEntityManager.getSearchFactory().buildQueryBuilder().forEntity(FormSubmission.class).get();
org.apache.lucene.search.Query wildcardQuery = queryBuilder
.keyword()
.wildcard()
.onField("data") // name of the field in database
.matching(searchedString)
.createQuery();
List<Object> results = (List<Object>) fullTextEntityManager
.createFullTextQuery(wildcardQuery, FormSubmission.class)
.setProjection(ProjectionConstants.THIS, ProjectionConstants.SCORE)
.getResultList();
// List<Object> flowSubmissions = fullTextEntityManager.createFullTextQuery(wildcardQuery, FlowSubmission.class).getResultList();
return results;
}