在用Java链接es8.14.1过程中,执行查询语句如下:
String searchText = "bike";
SearchResponse<Product> response1 =
esClient.search(s -> s .index("products")
.query(q -> q .match(t -> t
.field("name")
.query(searchText) )
), //实体类
Product.class );
报错Exception in thread "main" co.elastic.clients.transport.TransportException: node: http://192.168.225.3:9200/, status: 200, [es/search] Failed to decode response,
详细如下如所示:
百度了很多文档,中未见明确的解决方法,直到查到文档SpringBoot 提示:Cannot construct instance of `com.... (no Creators, like default construct, exist)_cannot construct instance of `com.example.testspri-CSDN博客
文中讲解:
在该实体类(Paymen.java)中构造了一个方便实例化该类的有参构造函数,导致JVM不会添加默认的无参构造函数,而jackson的反序列化需要无参构造函数,因此报错。
解决办法:
在该实体类(Paymen.java)中添加了一个无参构造函数,问题解决。
参考上文提示,查找对应的文档"Product.java"文件,添加午餐构造函数,如下图所示
再执行查询语句,执行正常。