Hibernate search 使用全文搜索时,无法将org.hibernate.impl.SessionImpl强制转换为org.hibernate.engine.spi.SessionImplementor

Hibernate search 使用全文搜索时,无法将org.hibernate.impl.SessionImpl强制转换为org.hibernate.engine.spi.SessionImplementor,hibernate-search,fuzzy-search,Hibernate Search,Fuzzy Search,我正在使用hibernate-search-4.5.2.Final来实现全文搜索,但是得到了一个异常消息 org.hibernate.impl.SessionImpl不能强制转换为org.hibernate.engine.spi.SessionImplementor 在下面的行中 FullTextSession fullTextSession = Search.getFullTextSession(sessionImpl.getFactory().openSession()); 这是我的代码:

我正在使用hibernate-search-4.5.2.Final来实现全文搜索,但是得到了一个异常消息

org.hibernate.impl.SessionImpl不能强制转换为org.hibernate.engine.spi.SessionImplementor

在下面的行中

FullTextSession fullTextSession = Search.getFullTextSession(sessionImpl.getFactory().openSession());
这是我的代码:

    @Autowired  
private SessionFactory sessionFactory;
@SuppressWarnings("rawtypes")
@Override
public List getFuzzySearchedResult(String query_string) {
    try {
        Session session = sessionFactory.openSession();
        FullTextSession fullTextSession = Search.getFullTextSession(session);
        final QueryBuilder mythQB = fullTextSession.getSearchFactory().buildQueryBuilder().forEntity(FaqMaster.class).get();
        org.apache.lucene.search.Query luceneQuery = mythQB.phrase().withSlop(3).onField("question_name").andField("qustion_answer").sentence("Department").createQuery();

        org.hibernate.Query fullTextQuery = fullTextSession.createFullTextQuery(luceneQuery);
        List result = fullTextQuery.list();
        return result;
    }
    catch(Exception e){System.out.println("ERROR: "); e.printStackTrace(); return null;}
}

请提供帮助。

您使用的Hibernate ORM版本与此版本的Hibernate Search不兼容

Hibernate Search 4.5.x的所有版本都需要系列4.3.x中的Hibernate ORM版本

这是记录在案的:

上 在 在项目自述中 在Maven pom文件中
但你不是第一个被这弄糊涂的人;-所以我想知道我们是否应该添加一个明确的检查和更容易理解的错误消息。我已经创建了,看看我们是否可以做得更好。

您能分享完整的stacktrace吗?另外,您使用的是哪个版本的Hibernate ORM?Hibernate ORM 4.3.6.Final是您正在使用的搜索版本的官方支持版本。在您的示例中,sessionImpl来自哪里?