如何使用带通配符查询的 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;
    }