繁体   English   中英

Elasticsearch使用java api返回原始json

[英]Elasticsearch return raw json with java api

我的春季网络应用程序中有以下要求:

  • 从Elasticsearch中查找对象并在谷歌地图上显示它们(首选json格式)
  • 从Elasticsearch中查找对象(与上面相同的查询)并将它们显示在列表中(首选java对象格式以在JSP页面上显示它)

我使用SearchRequestBuilder编写了使用Java API的搜索,它工作正常:

SearchRequestBuilder request = client.prepareSearch("index").setTypes("type")
        .setSearchType(SearchType.QUERY_THEN_FETCH).setFrom(0).setSize(10).addFields(RESPONSE_FIELDS);
//request is much more complicated
//...
SearchResponse response = request.execute().actionGet();
SearchHits hits = response.getHits();

但是为了在谷歌地图上显示它我更喜欢从elasticsearch而不是SearchResponse对象获取JSON对象,如下所示:

{
    "_index": "indexName",
    "_type": "type",
    "_id": "9094",
    "_version": 31,
    "found": true,
    "_source": {
        //list of properties
    }
}

是否可以使用Java API + SearchRequestBuilder获取JSON响应,或者我必须使用REST API?

Java api不会为您映射到json(或任何其他实体)。 但是,您可以执行以下操作:

  • 使用spring-data-elasticsearch直接反序列化为实体
  • 从Java api获取响应并使用像Jackson这样的东西解析为json
  • 考虑使用将返回gson(Googles json)的开关Api

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM