java 查询转对象_在ElasticSearch中将SearchHit转换为Java对象
我正在尝试检索数据表单ES查询,我对如何将每次检索到的数据转换为Java对象感到困惑。 到现在为止,我可以使用Gson获取每个JSON格式的命中,但我认为从命中转换为JSON然后转换为Java对象是没有用的。在ElasticSearch中将SearchHit转换为Java对象
我当前的代码是:
TransportClient client = new PreBuiltTransportClient(Settings.EMPTY)
.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("127.0.0.1"), 9300));
Settings settings = Settings.builder()
.put("cluster.name", "elasticsearch")
.put("path.home", "/Users/user/Apps/elasticsearch-5.4.1")
.build();
QueryBuilder qb = termQuery("price", 12);
SearchResponse response = client.prepareSearch("kal").setTypes("products")
.setSearchType(SearchType.DEFAULT)
.setQuery(qb)
.get();
SearchHit[] results = response.getHits().getHits();
for (SearchHit hit : results) {
String sourceAsString = hit.getSourceAsString();
Map responseFields = hit.getFields();
if (sourceAsString != null) {
Gson gson = new GsonBuilder().setDateFormat(sourceAsString)
.create();
}
}
2017-06-08
pik4
+0
我不确定你在那里试图达到什么目的。你实际上已经有了java对象(SearchHit数组命名为results)。你想获得对SearchHit的子对象的引用吗? –
+0
有没有直接的方法将SearchHit映射到另一个对象? 或者你需要实现构造函数? –
+0
如果您在这里看到 https://stackoverflow.com/a/30376770/4343294 您从SearchHit检索JSON对象 –