简体   繁体   中英

How to use Hibernate Search with a wildcard query and output the result object list

I want to search for a string in XML data in MySQL database using hibernate search and print the result list of data that contains the string.

..it worked

    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();

        return results;
    }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM