首页 > 解决方案 > UnsupportedOperationException: JsonObject

问题描述

我正在学习 Elasticsearch,我想使用休眠搜索来搜索数据,但是发生了这个错误:

java.lang.UnsupportedOperationException: JsonObject
    at com.google.gson.JsonElement.getAsInt(JsonElement.java:243)
    at io.searchbox.core.SearchResult.getTotal(SearchResult.java:184)
    at org.hibernate.search.elasticsearch.impl.ElasticsearchHSQueryImpl.execute(ElasticsearchHSQueryImpl.java:301)
    at org.hibernate.search.elasticsearch.impl.ElasticsearchHSQueryImpl.queryEntityInfos(ElasticsearchHSQueryImpl.java:275)

这是我的依赖

at org.hibernate.search.query.hibernate.impl.FullTextQueryImpl.list(FullTextQueryImpl.java:197)
        at org.hibernate.search.jpa.impl.FullTextQueryImpl.getResultList(FullTextQueryImpl.java:157)
        at org.hibernate.demos.hswithes.model.Main.main(Main.java:37)

这是我的 pom.xml

    <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-search-orm</artifactId>
                <version>5.6.1.Final</version>
            </dependency>
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-search-elasticsearch</artifactId>
                <version>5.6.1.Final</version>
            </dependency>
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-entitymanager</artifactId>
                <version>5.1.3.Final</version>
            </dependency>

我使用 Java 8 和 Elasticsearch 6.8。

标签: javaelasticsearchhibernate-search

解决方案


Hibernate Search 5.6 已经很老了。它只支持 Elasticsearch 2.0 - 2.4

使用 Elasticsearch 6.8 测试的唯一版本的 Hibernate Search 是Hibernate Search 6.0。如果您刚刚开始处理您的应用程序,我强烈建议您使用该版本。它公开了不同的 API,但更适合 Elasticsearch。

确保也使用 Hibernate ORM 5.4。Hibernate ORM 5.1.3 不适用于 Hibernate Search 6.0。


推荐阅读