所有字段Hibernate搜索忽略大小写正则表达式

时间:2019-10-11 20:02:19

标签: hibernate elasticsearch jpa

尝试在所有字段中使用搜索。我想在搜索时忽略大小写,我也想找到一个匹配以下格式的对象:“ {任何符号} {输入字符串} {任何符号}”。我该怎么办

我的方法

@Override
    public List<Teacher> searchByQuery(String query) {

        List result = Collections.emptyList();


        if (!query.trim().isEmpty()) {

            FullTextEntityManager fullTextEntityManager = Search.getFullTextEntityManager(em);
            QueryBuilder qb = fullTextEntityManager.getSearchFactory()
                    .buildQueryBuilder().forEntity(Teacher.class).get();
            org.apache.lucene.search.Query luceneQuery = qb
                    .keyword()
                    .onFields("fam", "name", "otch", "phoneNumber")
                    .matching(query)
                    .createQuery();

            Query jpaQuery = fullTextEntityManager.createFullTextQuery(luceneQuery, Teacher.class);
            result = jpaQuery.getResultList();
        }

        return result;
    }

我该如何实现?

0 个答案:

没有答案