java - 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。
解决方案
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。
推荐阅读
- python - importError:无法从“object_detection.builders”(未知位置)导入名称“model_builder”
- python - 如何将标签添加到情节授予情节
- php - symfony 路由过滤器
- java - 如何在java中读取字符串xml字符串?
- java - 他们是我的要求的任何替代方法而不是迭代器
- excel - 从 Sheet1 复制使用的范围并粘贴到 Sheet3
- android - Actions 测试工具出现“抱歉,无法获取”错误
- linux - udev - 在一个符号链接下收集 USB 类
- python - 过滤日期时间列
- grails - 如何在一台 Windows 机器上运行不同版本的 grails 并让它们相互交互?